diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-10 01:41:52 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-10 01:41:52 -0500 |
| commit | 3b5f328220041f4e0ba526a955826754d127810d (patch) | |
| tree | 5da47b2cbc02ff27668cc6a21d55a0c3e02918d9 | |
| parent | e212dab8ad8945369378835ae453b6ad8718563c (diff) | |
| download | rulesets-3b5f328220041f4e0ba526a955826754d127810d.tar.gz rulesets-3b5f328220041f4e0ba526a955826754d127810d.zip | |
chore(ai): archive session record
| -rw-r--r-- | .ai/notes.org | 2 | ||||
| -rw-r--r-- | .ai/sessions/2026-06-10-01-40-inbox-handoffs-gitignore-broadcast-task-review.org | 66 | ||||
| -rw-r--r-- | todo.org | 95 |
3 files changed, 114 insertions, 49 deletions
diff --git a/.ai/notes.org b/.ai/notes.org index 1cf6cd3..2c09ac5 100644 --- a/.ai/notes.org +++ b/.ai/notes.org @@ -79,6 +79,6 @@ Format: Markers maintained by workflows to record when they last ran. Read by other workflows that gate their behavior on freshness. :LAST_AUDIT: 2026-05-28 -:LAST_INBOX_PROCESS: 2026-06-09 +:LAST_INBOX_PROCESS: 2026-06-10 Format: one =:MARKER: YYYY-MM-DD= line per workflow. Workflows overwrite their own marker on completion. diff --git a/.ai/sessions/2026-06-10-01-40-inbox-handoffs-gitignore-broadcast-task-review.org b/.ai/sessions/2026-06-10-01-40-inbox-handoffs-gitignore-broadcast-task-review.org new file mode 100644 index 0000000..2693431 --- /dev/null +++ b/.ai/sessions/2026-06-10-01-40-inbox-handoffs-gitignore-broadcast-task-review.org @@ -0,0 +1,66 @@ +#+TITLE: Session Context +#+DATE: 2026-06-10 + +* Summary + +** Active Goal +Process the rulesets inbox (started at 5 items, +2 arrived mid-session = 7 total), then a task review before wrapping. Every item was a rulesets-tooling handoff. Nine commits shipped. + +** Decisions +- *meeting-prep stays project-only for now (option b).* The daily-prep 5-day look-ahead references meeting-prep, which isn't a template. Rather than promote it tonight (it carries deepsat/assets, Linear, knowledge.org references needing generalization), softened the reference to "where the project has one" and filed promotion as a [#C] :solo: TODO. +- *gitignore the whole personal-tooling set, gated on the existing track-vs-gitignore split.* Set = .ai/, .claude/, CLAUDE.md, AGENTS.md. Craig's insight: .claude/ goes in wholesale (not just CLAUDE.md) because it's rulesets-owned (claude-rules copies + bundle), re-synced every startup, so git isn't how it travels — and ignoring it covers the private rule copies CLAUDE.md-only would miss. Only team repos that share config keep tracking it. +- *Broadcast the gitignore change, don't commit across repos.* Ran the sweep (8 gitignore-mode projects), then per Craig reverted all 8 edits and broadcast a handoff to each so every project applies + commits it itself. 22 track-mode projects skipped by design. +- *:solo: definition sharpened (Craig's clarification).* Decoupled his routine spot-check from the determination — a task Claude builds and verifies itself, leaving a manual-testing reminder, is solo. Disqualifier is having no verification path of Claude's own. +- *Task review: killed Skill Seekers DeepSat trial, re-graded c4-* rename #C→#D, tagged meeting-prep :solo:; the other 4 confirmed + re-stamped.* +- *lint-list gotcha promoted to verification.md* — enumerated lint/test/format file lists silently skip new files; a green check only covers files the gate ran on. + +** Data Collected / Findings +- 30 AI projects total (the "8 swept" was only the gitignore-mode subset). 5 lacked inbox/ — created all (git-gutter, google-contacts.el, mcp.el, winvm, little-elisper). Now 0 missing. +- Sweep dry-run/real split matched the design exactly: 8 gitignore-mode backfilled, 22 track-mode skipped, no WARN (nothing already tracked = no history leak). +- Self-caught error: edited the .ai/ mirror of task-review.org instead of canonical; sync-check --fix reverted it. Redid on canonical (claude-templates/). Lesson reinforced: always edit canonical, never the mirror. + +** Files Modified +- spec-review.org (+mirror): namespace-resolution check (358e350). +- create-workflow.org + INDEX.org (+mirrors): supporting-doc convention (891e1ab). +- daily-prep.org (+mirror): 5-day look-ahead, daily big-ball, decline gate (78133a3). +- todo.org: meeting-prep promotion TODO (c401d6d); task-review edits (e212dab). +- install-ai.sh + sweep-gitignore-tooling.sh + 2 bats + protocols.org (+mirror): gitignore tooling set + sweep + policy (cc72aa6). +- task-review.org (+mirror): :solo: definition (4a4a88c). +- verification.md: enumerated-gate corollary (43a2a5e). +- notes.org: :LAST_INBOX_PROCESS: → 2026-06-10. +- Handoffs sent: archangel x3 (spec-review confirm, gitignore close, lint-list promote), work x2 (supporting-doc, daily-prep), archsetup (solo), plus the 8-project gitignore broadcast. + +** Next Steps +- 8 gitignore-mode projects have the broadcast handoff in their inbox — each adds the missing ignore lines and commits on its next session. +- Open [#C] follow-ups: meeting-prep promotion (:solo:), wide org-table, SessionStart-on-clear hook, /update-skills, /research-writer, the memory/org-roam VERIFY. +- All nine commits pushed at wrap. + +* Session Log + +** Startup + inbox triage +Clean startup, no crash anchor. Inbox had 5 items, all rulesets-tooling. Surfaced dispositions; Craig picked option 1 (two quick promotions first, then the two bigger handoffs). + +** #1 + #2 shipped +Promoted the archangel spec-review namespace check into canonical spec-review.org, generalized product-neutral (commit 358e350). Documented the <workflow>.<suffix>.org supporting-doc convention in create-workflow.org Phase 4 + INDEX drift-check note (commit 891e1ab). Mirror synced, workflow-integrity OK (42), org parse clean, review-code Approve. Replies sent to archangel + work; both inbox files deleted. Two commits, not yet pushed. + +** #3 daily-prep shipped +Craig chose option 1 (soften meeting-prep ref, file promotion separately). Applied all three additions + generic changelog to canonical daily-prep.org (commit 78133a3), mirror synced, parse + integrity OK, content-scope clean. Softened both meeting-prep references to "where the project has one." Filed meeting-prep promotion as [#C] rulesets TODO (commit c401d6d). Replied to work, deleted handoff. Calendar aside from Craig: he cancelled a look-ahead meeting (already met Kostya). + +** #4 gitignore broadcast — DECISION + implementing +Investigated mechanism: install-ai.sh gitignore mode appends only =.ai/=; CLAUDE.md is "untracked but not ignored" (the gap that bit archangel via /codify). Craig asked why not gitignore all of .claude/ — answer: .claude/ is entirely rulesets-owned (claude-rules/*.md copies + bundle rules/hooks/settings), re-synced by sync-language-bundle.sh every startup, so git isn't how it travels for single-user projects. Ignoring it wholesale is cleaner — also covers the private rule-file copies (commits.md etc.) that CLAUDE.md-only would leave exposed. Only downside is team repos where non-rulesets teammates need .claude/ via git (work/deepsat — track-mode anyway). + +DECISION (Craig option 2): implement core now. Ignore set for gitignore-mode projects = =.ai/ .claude/ CLAUDE.md AGENTS.md=. Gate stays the existing track-vs-gitignore split. Plan: (a) extend install-ai.sh gitignore block, line-idempotent; (b) reusable idempotent sweep over gitignore-mode projects; (c) reconcile docs to state policy once. TDD via install-ai.bats + new sweep tests. + +** #4 shipped (commit cc72aa6) +install-ai.sh gitignore block now writes the 4-line set (line-idempotent), help text updated. New scripts/sweep-gitignore-tooling.sh + 7 bats tests (15 total green). protocols.org states the policy once, tied to the gate. Ran sweep: 8 gitignore-mode projects need backfill, 22 track-mode skipped — split matches design. No WARN (nothing already tracked). + +Craig's call on the 8 dirty .gitignores: broadcast, let projects commit themselves. Reverted all 8 sweep edits (clean), broadcast the gitignore handoff to all 8 (5 via inbox-send, 3 manual since git-gutter/google-contacts.el/mcp.el lacked inbox/ — created those). Replied to archangel closing its 3 asks. Deleted archangel handoff + lint-followups.org (#5 staleness nudge — 2 stale tasks remain, offer task review). + +** inbox/ audit (Craig asked) +30 AI projects total (the "8" was the gitignore-mode subset). 5 lacked inbox/: git-gutter, google-contacts.el, mcp.el (created during broadcast) + winvm, little-elisper (created on request). Now 0 missing. + +** Two new handoffs arrived mid-session (processing) +- archangel lint-list-improvement: promotion candidate — hand-maintained lint/test/format file lists silently skip new files. Suggests a line in verification.md. Judgment call (global rules layer). +- archsetup solo-clarification: Craig sharpened :solo: tag def (2026-06-10) with exact suggested edit. Fold into task-review.org (:solo: section) + task-audit.org Phase C mirror. Craig-authored → implement. + +** Pending: 5 local commits not pushed. Inbox has 2 new items. @@ -886,54 +886,6 @@ Triggers that would prompt "let's build it now": Upstream reference (do not vendor): ComposioHQ/awesome-claude-skills =content-research-writer/SKILL.md=. -** CANCELLED [#C] Try Skill Seekers on a real DeepSat docs-briefing need :chore: -CLOSED: [2026-06-10 Wed] -:PROPERTIES: -:LAST_REVIEWED: 2026-05-28 -:END: - -=Skill Seekers= ([[https://github.com/yusufkaraaslan/Skill_Seekers]]) is a Python -CLI + MCP server that ingests 18 source types (docs sites, PDFs, GitHub -repos, YouTube videos, Confluence, Notion, OpenAPI specs, etc.) and -exports to 20+ AI targets including Claude skills. MIT licensed, 12.9k -stars, active as of 2026-04-12. - -*Evaluated: 2026-04-19 — not adopted for rulesets.* Generates -*reference-style* skills (encyclopedic dumps of scraped source material), -not *operational* skills (opinionated how-we-do-things content). Doesn't -fit the rulesets curation pattern. - -*Next-trigger experiment (this TODO):* the next time a DeepSat task needs -Claude briefed deeply on a specific library, API, or docs site — try: -#+begin_src bash -pip install skill-seekers -skill-seekers create <url> --target claude -#+end_src -Measure output quality vs hand-curated briefing. If usable, consider -installing as a persistent tool. If output is bloated / under-structured, -discard and stick with hand briefing. - -*Candidate first experiments (pick one from an actual need, don't invent):* -- A Django ORM reference skill scoped to the version DeepSat pins -- An OpenAPI-to-skill conversion for a partner-vendor API -- A React hooks reference skill for the frontend team's current patterns -- A specific AWS service's docs (e.g. GovCloud-flavored) - -*Patterns worth borrowing into rulesets even without adopting the tool:* -- Enhancement-via-agent pipeline (scrape raw → LLM pass → structured - SKILL.md). Applicable if we ever build internal-docs-to-skill tooling. -- Multi-target export abstraction (one knowledge extraction → many output - formats). Clean design for any future multi-AI-tool workflow. - -*Concerns to verify on actual use:* -- =LICENSE= has an unfilled =[Your Name/Username]= placeholder (MIT is - unambiguous, but sloppy for a 12k-star project) -- Default branch is =development=, not =main= — pin with care -- Heavy commercialization signals (website at skillseekersweb.com, - Trendshift promo, branded badges) — license might shift later; watch -- Companion =skill-seekers-configs= community repo has only 8 stars - despite main's 12.9k — ecosystem thinner than headline adoption - ** TODO [#D] Revisit =c4-*= rename if a second notation skill ships :chore: :PROPERTIES: :LAST_REVIEWED: 2026-06-10 @@ -2533,3 +2485,50 @@ Craig approved the spec ([[file:docs/design/2026-06-02-pattern-catalog-spec.org] *** 2026-06-05 Fri @ 00:47:59 -0500 Built the catalog — 6 seed patterns + pointer + README Created =patterns/= with the six seed patterns (one-prompt-picker-typed-prefix, transient-state-buttons, no-empty-input-as-meaningful, label-matches-behavior, default-most-common-friction-proportional, collapse-orthogonal-prompts), each carrying the frontmatter contract (name/principle/problem/tags/source/examples) plus Problem/Do/Anti-pattern/Applicability/Related sections. =patterns/README.org= states the root principle, the frontmatter contract, and the intake cadence. =claude-rules/patterns.md= is the agent-facing pointer, auto-installed via the Makefile RULES glob. Sourced from the four pearl notes in =docs/design/=. +** CANCELLED [#C] Try Skill Seekers on a real DeepSat docs-briefing need :chore: +CLOSED: [2026-06-10 Wed] +:PROPERTIES: +:LAST_REVIEWED: 2026-05-28 +:END: + +=Skill Seekers= ([[https://github.com/yusufkaraaslan/Skill_Seekers]]) is a Python +CLI + MCP server that ingests 18 source types (docs sites, PDFs, GitHub +repos, YouTube videos, Confluence, Notion, OpenAPI specs, etc.) and +exports to 20+ AI targets including Claude skills. MIT licensed, 12.9k +stars, active as of 2026-04-12. + +*Evaluated: 2026-04-19 — not adopted for rulesets.* Generates +*reference-style* skills (encyclopedic dumps of scraped source material), +not *operational* skills (opinionated how-we-do-things content). Doesn't +fit the rulesets curation pattern. + +*Next-trigger experiment (this TODO):* the next time a DeepSat task needs +Claude briefed deeply on a specific library, API, or docs site — try: +#+begin_src bash +pip install skill-seekers +skill-seekers create <url> --target claude +#+end_src +Measure output quality vs hand-curated briefing. If usable, consider +installing as a persistent tool. If output is bloated / under-structured, +discard and stick with hand briefing. + +*Candidate first experiments (pick one from an actual need, don't invent):* +- A Django ORM reference skill scoped to the version DeepSat pins +- An OpenAPI-to-skill conversion for a partner-vendor API +- A React hooks reference skill for the frontend team's current patterns +- A specific AWS service's docs (e.g. GovCloud-flavored) + +*Patterns worth borrowing into rulesets even without adopting the tool:* +- Enhancement-via-agent pipeline (scrape raw → LLM pass → structured + SKILL.md). Applicable if we ever build internal-docs-to-skill tooling. +- Multi-target export abstraction (one knowledge extraction → many output + formats). Clean design for any future multi-AI-tool workflow. + +*Concerns to verify on actual use:* +- =LICENSE= has an unfilled =[Your Name/Username]= placeholder (MIT is + unambiguous, but sloppy for a 12k-star project) +- Default branch is =development=, not =main= — pin with care +- Heavy commercialization signals (website at skillseekersweb.com, + Trendshift promo, branded badges) — license might shift later; watch +- Companion =skill-seekers-configs= community repo has only 8 stars + despite main's 12.9k — ecosystem thinner than headline adoption |
