Replies: 1 comment 1 reply
|
This is how to propose a feature here - you found the admission test and brought a candidate that genuinely passes it: One thing changed since you wrote this, and it's the main thing your spec should now address explicitly: Conditions for the PR, none of which should surprise you since your spec already promises most of them:
Command #12 is a real cost - the lifecycle is feature-complete and every added command dilutes discoverability a little - but "the pipeline, reachable from anywhere the terminal isn't" earns the slot if the |
Uh oh!
There was an error while loading. Please reload this page.
Hi Mads! Sanity-check before opening a PR, since this involves a specific external tool.
What this operationalizes
The framework already writes rich pipeline state that nothing presents:
/rankstores scores inseen_jobs.json, and/outcomewrites every application tojob_search_tracker.csv. Reading either away from a terminal is impractical — checking "which deadlines are close?" or "what did I apply to last week?" from a phone means opening a shell./notion-syncconnects those two outputs to a portable presentation layer — a Notion database reachable anywhere Notion runs (desktop, web, mobile) — without modifying either file. It is read-only toward the repo and one-way toward Notion: nothing ever syncs back. The framework stays the brain; this is just a screen.Changes
.claude/commands/notion-sync.md— new slash commandtests/test_notion_sync_command.py— Python guards (see below)README.md— command documented in "Other commands" and the file tree.gitignore— addsjob_scraper/notion_sync.json(personal sync state, same rationale asjob_search_tracker.csv)What /notion-sync does
Reads
seen_jobs.json+job_search_tracker.csvand upserts a "Job Search Pipeline" database via the official Notion MCP server (OAuth — no API keys, no dependencies; degrades to a clear "connect Notion MCP first" message when unconfigured).--min-score/--all) plus every tracked applicationseen_jobs.jsonkey — re-runs create nothing twice/outcomerecords an applicationIsn't this the portal floodgate?
Fair concern: one tool's sync could invite every tool's sync. The spec handles it the way the repo handles portals:
linkedin-searchis for portalsThe fork-adaptation note sits at the bottom of the spec (following
setup.md's Design Principles precedent) — happy to move it to the README or drop it.Tests
Covers: command file exists with the header
lint_skills.pyenforces; the spec keeps its load-bearing sections;job_scraper/notion_sync.jsonis gitignored; the documents-never-sync privacy rule is present;python tools/lint_skills.pyexits 0. Full suite passes:Ran 114 tests — OK.Validation
Exercised end-to-end against a live pipeline: first-run database creation, idempotent re-run, in-place schema migration on an existing database, and a real application flowing
/outcome→ tracker → columns. Run reports available for the PR.The ask
Branch ready:
feat/notion-sync(4 files, +203). Does this fit — or would you prefer a different shape (flag-gated, different name, or fork-only)?Related: this sits in the same presentation-layer space as #131 (
/html-report) — I see them as complementary (static local dashboard vs. live remote view on mobile), but happy to align if you'd rather converge on one pattern.All reactions