aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.ai/notes.org2
-rw-r--r--.ai/sessions/2026-06-10-01-40-inbox-handoffs-gitignore-broadcast-task-review.org66
-rw-r--r--todo.org95
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.
diff --git a/todo.org b/todo.org
index d5e0e6a..16e3c41 100644
--- a/todo.org
+++ b/todo.org
@@ -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