[skip-docs] internal plumbing — standalone store, no command/agent/pipeline
surface change until slice 2 wiring (mirrors specifics-bank slice 2). CLAUDE.md
"Telling"/counts untouched; lint stays 84/0/0.
Research-engine §5 (foundation layer) slice 1: the deterministic STORE half of
the persistent trend store — a topic-tagged, provenance-bearing inventory of
trend signals captured over time, so the research engine accumulates HISTORY
instead of starting amnesiac each session. Trend-side twin of the lived-specifics
bank (same store/dedup/query discipline; dedupe key is normalized title+URL, not
free-text content). Generic by architecture: nothing niche-specific lives here —
topics and source are free-form, decided upstream via config/profile.
scripts/trends/ (sibling to specifics-bank, same tsx convention):
- src/types.ts — TrendRecord/TrendStore schema (schemaVersion 1), minimal
generic core: title, url, source, capturedAt, topics[], optional summary
- src/store.ts — pure store: normalizeField, title+url-hash id (= dedupe key),
load/save, addTrend (dedupe + topic union on re-capture; first-sighting
source/capturedAt kept), queryByTopic (overlap-ranked then recency), history
(time-scoped, since/limit)
- src/cli.ts — add / query / list; default store under
${LINKEDIN_STUDIO_DATA:-~/.claude/linkedin-studio}/trends/ so trend history
survives plugin upgrades/reinstalls (M0 data-path seam)
- tests/store.test.ts — 21/21 green; tsc clean
- README + .gitignore for node_modules/build
Capture/scoring agent + MCP-first routing land in slice 2; the CI binding guard
is deferred to wiring, mirroring the specifics-bank timeline.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
80 lines
1.8 KiB
Text
80 lines
1.8 KiB
Text
# Secrets and sensitive files
|
|
.mcp.json
|
|
.env
|
|
.env.*
|
|
|
|
# Local configuration
|
|
*.local.md
|
|
# Real voice profile is personal data — adopters keep theirs local; the tracked
|
|
# authentic-voice-samples.md ships as a sentinel placeholder. (Already matched by
|
|
# *.local.md above; listed explicitly so the intent is unmissable.)
|
|
assets/voice-samples/authentic-voice-samples.local.md
|
|
|
|
# Session state (personal activity, auto-initialized from template)
|
|
REMEMBER.md
|
|
|
|
# Credentials
|
|
credentials.json
|
|
*-secret*
|
|
*.pem
|
|
*.key
|
|
|
|
# OS files
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# IDE
|
|
.idea/
|
|
.vscode/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Temporary files
|
|
*.tmp
|
|
*.bak
|
|
|
|
# Draft content (personal posts)
|
|
assets/drafts/queue.json
|
|
assets/drafts/week-*/
|
|
|
|
# Analytics data (personal performance data)
|
|
assets/analytics/exports/
|
|
assets/analytics/posts/
|
|
assets/analytics/weekly-reports/
|
|
assets/analytics/content-history.md
|
|
|
|
# Internal development files (not for public release)
|
|
BACKLOG.md
|
|
docs/DEVELOPMENT-LOG.md
|
|
|
|
# Generated annotation/review artifacts (regenerable; annotations live in browser localStorage)
|
|
docs/review/
|
|
docs/**/*.html
|
|
# Voyage executor bookmarks (local continuity, not tracked)
|
|
docs/**/.session-state.local.json
|
|
*.local.json
|
|
|
|
# Node.js
|
|
scripts/analytics/node_modules/
|
|
scripts/analytics/build/
|
|
scripts/contract-gate/node_modules/
|
|
scripts/contract-gate/build/
|
|
scripts/specifics-bank/node_modules/
|
|
scripts/specifics-bank/build/
|
|
scripts/trends/node_modules/
|
|
scripts/trends/build/
|
|
|
|
# --- session/local state ---
|
|
# STATE.md is LOCAL-ONLY (gitignored): no private remote exists and STATE must
|
|
# never reach the public open/ mirror. Deliberate deviation from the global
|
|
# "STATE tracked" rule, justified by the absence of any private remote.
|
|
STATE.md
|
|
REMEMBER.md
|
|
ROADMAP.md
|
|
TODO.md
|
|
NEXT-SESSION-PROMPT*.local.md
|
|
*.local.md
|
|
*.local.json
|
|
*.local.sh
|
|
.DS_Store
|
|
.claude/
|