Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: drift
Title: Detecting Riparian and Inland Floodplain Transitions
Version: 0.2.0
Version: 0.2.1
Authors@R: c(
person("Allan", "Irvine", , "al@newgraphenvironment.com", role = c("aut", "cre"),
comment = c(ORCID = "0000-0002-3495-2128")),
Expand All @@ -21,6 +21,7 @@ RoxygenNote: 7.3.3
Depends:
R (>= 4.1)
Imports:
cli,
dplyr,
rappdirs,
rlang,
Expand Down
6 changes: 6 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
# drift 0.2.1

- Startup quote ritual: `library(drift)` prints a random fact-checked quote from 15 hip-hop artists on attach. Italic quote, grey attribution, clickable blue `source` hyperlink to the primary-source interview. Suppress via `options(drift.quote_show_source = FALSE)`.
- Curated via the soul `/quotes-enable` skill using multi-agent research + independent primary-source fact-check. 61 entries. See `data-raw/quotes_build.R` for full provenance.
- `cli` added to Imports for OSC 8 hyperlinks and styling in `R/zzz.R`.

# drift 0.2.0

- `dft_rast_transition()` — add `patch_area_min` parameter to filter small connected patches of changed pixels; return `$removed` raster for visual QA of filtered patches; add `from_class`/`to_class` filters
Expand Down
15 changes: 15 additions & 0 deletions R/zzz.R
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
.onAttach <- function(libname, pkgname) {
f <- system.file("extdata", "quotes.csv", package = pkgname)
if (!nzchar(f)) return(invisible())
q <- utils::read.csv(f, stringsAsFactors = FALSE, encoding = "UTF-8")
if (nrow(q) == 0) return(invisible())
row <- q[sample(nrow(q), 1), ]
quote_fmt <- cli::style_italic(sprintf("'%s'", row$quote))
msg <- sprintf("\n %s %s", quote_fmt, cli::col_grey(paste0("- ", row$author)))
if (isTRUE(getOption("drift.quote_show_source", TRUE)) &&
!is.null(row$source) && nzchar(row$source)) {
link <- cli::style_hyperlink(cli::col_blue("source"), row$source)
msg <- paste0(msg, "\n ", link)
}
packageStartupMessage(msg)
}
41 changes: 41 additions & 0 deletions data-raw/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# data-raw/quotes

Source and provenance for the startup quotes shown on `library(drift)`.

## Files

- `quotes_build.R` — **source of truth**. Contains the full quote list inline as an R tibble with full provenance columns. Run to regenerate the two output CSVs.
- `quotes_audit.csv` — generated. Full provenance record: quote, author, source URL, source_type, source_outlet, verification_date. Kept in the repo for audit trail; excluded from the built package via `.Rbuildignore`.
- `../inst/extdata/quotes.csv` — generated. Slim three-column shipped CSV (quote, author, source). Read at package attach by `R/zzz.R`.

## To add, edit, or remove a quote

1. Edit the `quotes` tibble in `quotes_build.R`
2. Every row must have a primary-source URL where the exact text was confirmed via a direct fetch of that URL on the recorded `verification_date`
3. Run `Rscript data-raw/quotes_build.R` from the repo root
4. Both output CSVs regenerate; commit all three files together

## Runtime toggle: show source URL on attach

`R/zzz.R` prints a clickable `source` hyperlink (OSC 8) alongside the quote by default. Works in RStudio (2022.12+) and modern terminals. In environments without OSC 8 support (older terminals, CI logs), the word `source` renders as plain text without URL visible — use the CSV for the trail there. To suppress entirely:

```r
options(drift.quote_show_source = FALSE)
library(drift)
```

Set the option in `~/.Rprofile` if you want the suppression persistent across sessions. Default is `TRUE` (URL visible).

## Standards

- **Primary source required** — published-outlet interviews, speeches, documentary transcripts. No Pinterest / BrainyQuote / azquotes / unsourced social-media screenshots.
- **No padding** — if research can't verify a candidate to primary material, drop it rather than pad to a target count.
- **UTF-8 throughout** — the `.onAttach` hook reads with `encoding = "UTF-8"`.

## Lyric policy

Interview speech only. Song lyrics are songwriter/publisher-copyrighted and outside the fair-use posture this package takes. See `planning/archive/` for the lyric-decision record when the originating issue is archived.

## History

See `planning/archive/` for the full research log, fact-check agent transcripts, and drop decisions from the initial curation round (branch `quotes-enable`, 2026-04-14).
62 changes: 62 additions & 0 deletions data-raw/quotes_audit.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
"quote","author","source","source_type","source_outlet","verification_date"
"I'm not even the same person I was yesterday. That's what keeps me creative.","Kendrick Lamar","https://www.wmagazine.com/culture/kendrick-lamar-interview-2022","interview","W Magazine","2026-04-14"
"I have so much discipline as far as repetition—I don't give a fuck if it's a thousand push-ups or pull-ups or whatever, but it's always that extra 5 percent I'm like, What am I on today? What's going to be the evolution for myself today?","Kendrick Lamar","https://www.wmagazine.com/culture/kendrick-lamar-interview-2022","interview","W Magazine","2026-04-14"
"It's stuff that I've written that's just now seeing daylight, because I wasn't secure with myself in order to do it.","Kendrick Lamar","https://www.wmagazine.com/culture/kendrick-lamar-interview-2022","interview","W Magazine","2026-04-14"
"It's not me pointing at my community; it's me pointing at myself.","Kendrick Lamar","https://www.npr.org/2015/12/29/461129966/kendrick-lamar-i-cant-change-the-world-until-i-change-myself-first","interview","NPR","2026-04-14"
"You can have the platinum album, but when you still feel like you haven't quite found your place in the world...","Kendrick Lamar","https://www.npr.org/2015/12/29/461129966/kendrick-lamar-i-cant-change-the-world-until-i-change-myself-first","interview","NPR","2026-04-14"
"It's not only caging us in the prisons, but up here as well.","Kendrick Lamar","https://www.vice.com/en/article/deeper-than-just-the-music-kendrick-lamars-extended-noisey-bompton-interview/","interview","Noisey/VICE","2026-04-14"
"I always thought it was cool to be able to go in any room and put that shit in. There's no ceilings, no boundaries; it's free.","Anderson .Paak","https://www.interviewmagazine.com/music/anderson-paak","interview","Interview Magazine","2026-04-14"
"The joy and the pain — you just need both.","Anderson .Paak","https://www.thegentlemansjournal.com/article/anderson-paak-interview-2024/","interview","The Gentleman's Journal","2026-04-14"
"Sometimes you have to laugh in order not to cry.","Anderson .Paak","https://www.thegentlemansjournal.com/article/anderson-paak-interview-2024/","interview","The Gentleman's Journal","2026-04-14"
"What's the point in being here? To show the world who I am.","Bad Bunny","https://www.rollingstone.com/music/music-features/bad-bunny-puerto-rico-new-album-acting-interview-1235227338/","interview","Rolling Stone","2026-04-14"
"I'll die and that's it — I'm not going to take anything with me.","Bad Bunny","https://www.rollingstone.com/music/music-features/bad-bunny-puerto-rico-new-album-acting-interview-1235227338/","interview","Rolling Stone","2026-04-14"
"When you're far away, you appreciate things more and you understand them better.","Bad Bunny","https://www.rollingstone.com/music/music-features/bad-bunny-puerto-rico-new-album-acting-interview-1235227338/","interview","Rolling Stone","2026-04-14"
"If I have the chance to say something, I will say it — but that doesn't obligate me to always say something.","Bad Bunny","https://www.gq.com/story/bad-bunny-good-times-profile","interview","GQ","2026-04-14"
"Never stop dreaming and being yourselves; never forget where you come from. There are many ways to serve your country; we chose music.","Bad Bunny","https://www.grammy.com/news/bad-bunny-if-i-have-chance-say-something-i-will-say-it","speech","Latin Grammys 2025","2026-04-14"
"Let people know that I'm not just a rapper, I'm a human being. Those are the things that make people grow. People that want to commit suicide, you might give them another chance.","Young Thug","https://www.thefader.com/2019/08/21/young-thug-fader-cover-quotes","interview","The FADER","2026-04-14"
"Anything in the world got style. A roach got style, the way he run, the way he hide, the way he eat. Everything has style, so I don't care to look for that.","Young Thug","https://www.thefader.com/2019/08/21/young-thug-fader-cover-quotes","interview","The FADER","2026-04-14"
"You can't learn how to keep inventing. You just keep learning how to keep learning. What's in you is in you.","Young Thug","https://www.rollingstone.com/music/music-features/young-thug-punk-ysl-1202951/","interview","Rolling Stone","2026-04-14"
"I'm trying to have something here that's like an experience that's passed on to generations.","Travis Scott","https://www.rollingstone.com/music/music-features/travis-scott-utopia-fatherhood-next-album-1235500436/","interview","Rolling Stone","2026-04-14"
"Can't afford shit. And my mom's disabled. And still she looked after me. That's why I move the way I move. Nothing stopping me, bro.","Travis Scott","https://www.rollingstone.com/music/music-features/travis-scott-rap-superstar-cover-story-767906/","interview","Rolling Stone","2026-04-14"
"Everybody go through shit. He still a dope musician.","Travis Scott","https://www.rollingstone.com/music/music-features/travis-scott-rap-superstar-cover-story-767906/","interview","Rolling Stone","2026-04-14"
"People wanted to keep rap a certain way. I didn't.","Travis Scott","https://www.rollingstone.com/music/music-features/travis-scott-utopia-fatherhood-next-album-1235500436/","interview","Rolling Stone","2026-04-14"
"I embraced what I thought people was gonna hate about me. I was gonna turn the hate into love.","Future","https://www.rollingstone.com/music/music-news/future-syrup-strippers-and-heavy-angst-with-the-superstar-mc-113132/9/","interview","Rolling Stone","2026-04-14"
"I was born Nayvadius, but now I'm Future. Should I dwell on what Nayvadius was supposed to be?","Future","https://www.rollingstone.com/music/music-news/future-syrup-strippers-and-heavy-angst-with-the-superstar-mc-113132/9/","interview","Rolling Stone","2026-04-14"
"Don't ask for a million dollars. Ask for the stuff that'll get you a million dollars — your health, your brain, your sanity, wisdom.","Future","https://www.rollingstone.com/music/music-news/future-syrup-strippers-and-heavy-angst-with-the-superstar-mc-113132/9/","interview","Rolling Stone","2026-04-14"
"I want to keep doing what I'm doing and see how far I can go. See when it stops. See what the end is like.","Future","https://www.rollingstone.com/music/music-news/future-syrup-strippers-and-heavy-angst-with-the-superstar-mc-113132/9/","interview","Rolling Stone","2026-04-14"
"I think I need to be a vessel of what not to do. In some things, I need to be a lesson on what to do.","Future","https://www.billboard.com/music/features/future-2022-interview-cover-story-1235171775/","interview","Billboard","2026-04-14"
"More than any accolades, sales and everything, I just want people to know at the end that I cared the whole time. I cared a lot.","Metro Boomin","https://www.complex.com/music/a/j-mckinney/metro-boomin-symphonic-interview","interview","Complex","2026-04-14"
"It's not about, 'Oh, look at me like a star!' Look at me like I care.","Metro Boomin","https://www.billboard.com/music/features/metro-boomin-spider-verse-producer-interview-cover-story-1235430134/","interview","Billboard","2026-04-14"
"The amount of grind and effort I put in my 20s into the music, I'mma put into the business aspect through these 30s. I watched my music seeds grow from 20 to 30. I can watch the rest of these grow from 30 to 40.","Metro Boomin","https://www.billboard.com/music/features/metro-boomin-spider-verse-producer-interview-cover-story-1235430134/","interview","Billboard","2026-04-14"
"I can't really identify if I ever really felt that I made it. Because even though we got a good start, we came a long way... it's a way even longer to go.","Metro Boomin","https://www.highsnobiety.com/p/metro-boomin-interview/","interview","Highsnobiety","2026-04-14"
"I just be rapping. Every day I discover something new about myself, and I just do it.","Playboi Carti","https://www.thefader.com/2019/06/12/playboi-carti-cover-story","interview","The FADER","2026-04-14"
"Some people don't know how to be alone, but I love it.","Playboi Carti","https://www.rollingstone.com/music/music-features/playboi-carti-profile-1142354/","interview","Rolling Stone","2026-04-14"
"That's just part of creating something new. If this is something that people accept right away, how different is it?","Playboi Carti","https://www.rollingstone.com/music/music-features/playboi-carti-profile-1142354/","interview","Rolling Stone","2026-04-14"
"I've been like this my whole life. When I do speak, it's for a reason.","Playboi Carti","https://www.rollingstone.com/music/music-features/playboi-carti-profile-1142354/","interview","Rolling Stone","2026-04-14"
"Instruments last forever. When you listen to a computer sound, those become of a time.","Ty Dolla $ign","https://www.interviewmagazine.com/music/ty-dolla-sign-hedonist-interview","interview","Interview Magazine","2026-04-14"
"When it comes to music, people have already played every single line — there's just different ways you can do it.","Ty Dolla $ign","https://www.billboard.com/music/rb-hip-hop/ty-dolla-sign-vulture-kanye-west-billboard-cover-1235712980/","interview","Billboard","2026-04-14"
"There's so many other artists out there, and now there's the internet and we can choose what we want, you don't have to be anything, you can just be yourself.","Ty Dolla $ign","https://www.interviewmagazine.com/music/ty-dolla-sign-hedonist-interview","interview","Interview Magazine","2026-04-14"
"If I just made 'Monëy So Big' 50 times in a row, I would be going nowhere.","Yeat","https://www.complex.com/music/a/eric-skelton/yeat-pray-love","interview","Complex","2026-04-14"
"It could feel very personal, but then four bars later I'm shit talking. It's like your life, everything's back and forth.","Yeat","https://www.thefader.com/2024/10/17/yeat-lyfestyle-album-synthetic-producer-interview","interview","The FADER","2026-04-14"
"If you sit there listening to other rappers all day, you start to sound like them, even subconsciously.","Yeat","https://magazine.032c.com/magazine/yeat-american-truths","interview","032c Magazine","2026-04-14"
"I believe that if I believe something, it will for sure happen. But you also can't fiend for anything.","Yeat","https://magazine.032c.com/magazine/yeat-american-truths","interview","032c Magazine","2026-04-14"
"It's time to give me my flowers. I don't want them when I ain't here.","Takeoff","https://www.rollingstone.com/music/music-news/takeoff-death-final-interview-time-to-give-me-my-flowers-1234622507/","interview","Rolling Stone (Drink Champs)","2026-04-14"
"Kobe was in that gym when nobody was in that gym. You wasn't in that gym with me, and you wasn't in that basement with me, and we stayed cooking up that whole time, perfecting our craft and sharpening our tools.","Takeoff","https://www.billboard.com/music/rb-hip-hop/quavo-takeoff-built-for-infinity-links-jack-harlow-1235155418/","interview","Billboard","2026-04-14"
"All this is just material. I could give everything up for my grandma. That was the backbone of the family.","Takeoff","https://www.billboard.com/music/rb-hip-hop/quavo-takeoff-built-for-infinity-links-jack-harlow-1235155418/","interview","Billboard","2026-04-14"
"It's feeling confident I'm going to go up with the music, but I'm down every day. It's the challenge of trying to be the best at your worst times.","Offset","https://globalgrind.com/6200560/set-gq-interview/","interview","GQ (via Global Grind)","2026-04-14"
"I get through my day thinking it's fake.","Offset","https://www.rollingstone.com/music/music-news/migos-offset-grieves-takeoff-through-music-art-1234741116/","interview","Rolling Stone","2026-04-14"
"You gotta put your own identity on it.","Mike WiLL Made-It","https://www.rollingstone.com/music/music-features/mike-will-made-it-producer-interview-1234778846/","interview","Rolling Stone","2026-04-14"
"You got two different types of creatives. You got innovators and you got duplicators.","Mike WiLL Made-It","https://www.rollingstone.com/music/music-features/mike-will-made-it-producer-interview-1234778846/","interview","Rolling Stone","2026-04-14"
"Speak from your heart, speak from your soul. Express yourself.","Mike WiLL Made-It","https://www.rollingstone.com/music/music-features/mike-will-made-it-producer-interview-1234778846/","interview","Rolling Stone","2026-04-14"
"You can't create an AI me.","Mike WiLL Made-It","https://www.rollingstone.com/music/music-features/mike-will-made-it-producer-interview-1234778846/","interview","Rolling Stone","2026-04-14"
"We could either fall back and fade away or bring it to another level.","Statik Selektah","https://djbooth.net/features/2020-10-27-statik-selektah-interview-audiomack-producer-success-tips/","interview","DJBooth/Audiomack","2026-04-14"
"I do a lot of things that I could do a different way and make a whole lot more money, but it doesn't feel right.","Statik Selektah","https://djbooth.net/features/2020-10-27-statik-selektah-interview-audiomack-producer-success-tips/","interview","DJBooth/Audiomack","2026-04-14"
"I'm just holding that torch and keeping it going, keeping the fundamentals of hip-hop alive.","Statik Selektah","https://djbooth.net/features/2020-10-27-statik-selektah-interview-audiomack-producer-success-tips/","interview","DJBooth/Audiomack","2026-04-14"
"Hip-Hop should be protected because it's not a novelty; it's a way of life.","Statik Selektah","https://ambrosiaforheads.com/2020/12/statik-selektah-protect-hip-hop/","interview","Ambrosia For Heads","2026-04-14"
"Education is everything for the next generation to understand what Hip-Hop actually is.","Statik Selektah","https://ambrosiaforheads.com/2020/12/statik-selektah-protect-hip-hop/","interview","Ambrosia For Heads","2026-04-14"
"I am very curious of the person who I shall become.","YoungBoy Never Broke Again","https://www.billboard.com/music/features/youngboy-never-broke-again-cover-story-interview-1235208827/","interview","Billboard","2026-04-14"
"I will not be provoked, I will not be broken, and I'm not going back.","YoungBoy Never Broke Again","https://www.billboard.com/music/features/youngboy-never-broke-again-cover-story-interview-1235208827/","interview","Billboard","2026-04-14"
"The lifestyle is just a big distraction from your real purpose.","YoungBoy Never Broke Again","https://www.billboard.com/music/features/youngboy-never-broke-again-cover-story-interview-1235208827/","interview","Billboard","2026-04-14"
"Nighttime, when everybody's asleep — it's the most peaceful time ever inside of life to me.","YoungBoy Never Broke Again","https://www.billboard.com/music/features/youngboy-never-broke-again-cover-story-interview-1235208827/","interview","Billboard","2026-04-14"
"I think about how many lives I actually am responsible for when it comes to my music.","YoungBoy Never Broke Again","https://www.complex.com/music/a/tracewilliamcowen/youngboy-never-broke-again-rare-mormonism-prolific-release-strategy-music-impact-interview","interview","Complex","2026-04-14"
"I wish I knew when I was younger how unhealthy this was for me. Whatever type of energy I had inside me, I would've pushed it toward something else.","YoungBoy Never Broke Again","https://www.complex.com/music/a/tracewilliamcowen/youngboy-never-broke-again-rare-mormonism-prolific-release-strategy-music-impact-interview","interview","Complex","2026-04-14"
Loading
Loading