aboutsummaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* fix(scripts): keep screenshot --launch from crashing the compositorCraig Jennings5 days1-0/+5
| | | | | | | | An XWayland client launched by --launch could send a configure request while the script tore down the headless output. Hyprland's damage path then dereferenced the removed monitor and the compositor aborted (Hyprland 0.55.2, coredump analysis in docs/design/). The fix has two layers. --launch now forces the Wayland backend (DISPLAY unset, GDK and Qt steered to wayland) so no XWayland surface exists to race. Teardown also polls until the launched clients actually unmap before removing the output. X11-only apps fail to map under the default, and some emacs builds are X11-only. The new --x11 flag allows XWayland for them, protected by the unmap wait. The no-window error hints at the flag.
* feat(workflows): rewrite daily-prep to the strict three-section templateCraig Jennings5 days2-0/+358
| | | | | | | | From the template spec Craig wrote 2026-06-10 plus four refinements from his review of the first new-format prep. The doc is now exactly Heads-Up, Day's Priorities, and Meetings / Focus Blocks. Two run modes replace full-prep and standup-only: Create ends with a mandatory priorities review gate (disagreement there signals todo.org staleness), and Update refreshes a day when the world moves. Both run a triage-intake first when none ran in the last hour. It retires the separate Standup Briefs and Upcoming Deadlines sections, the Anchor Tasks handoff, and the thin-link convention. Priorities entries now mirror their todo.org task heading and carry links and context in the body. Briefs nest under the standup they're reported in, with Blockers: None explicit. Meetings carry what to contribute and get, likely questions with answers, linked prep docs, and day-before prep blocks for unanswered questions. Focus blocks are linked menus, created the day before and marked free. The spec and the decisions handoff land in docs/design/.
* docs(spec): record agent KB v1 implementation, close phase tasksCraig Jennings5 days1-2/+7
| | | | All five phases shipped today. The spec status flips to implemented with a history entry carrying the commit trail; the phase tasks become dated completion entries under the parent, which moves to DOING until the manual-testing checklist and the other machines' clone + timer setup land.
* docs(spec): move agent KB to git and fold in migration, metrics, upkeepCraig Jennings5 days1-29/+94
| | | | | | The KB leaves the ~/sync/org Syncthing share for its own git repo on cjennings.net (new decision D8). A systemd timer auto-syncs Craig's edits, agents pull before query and commit+push after write, machines replicate by clone (the work machine doesn't), and agent writes land under an agents/ subdirectory. Syncthing's no-history, no-gate, conflict-fork costs were the design's weakest accepted risks, and the phone constraint dissolved: mobile stays on on-demand doc drops to the ~/sync/phone share. The amendment also folds in inclusion criteria plus a guided per-project memory sweep (Phase 1.5), a Success metrics section with a 30-day checkpoint, the seed node redefined as the KB's own documentation, and monthly hygiene automation (Phase 4). Phases renumbered 0-4. Implementation stays held pending the go-ahead.
* docs(spec): work-root denylist confirmed, agent KB spec now readyCraig Jennings5 days1-4/+9
| | | | Craig confirmed the denylist is complete at ~/projects/work alone (archangel is not work-scoped), which clears the spec's one remaining caveat. Phase 1 is unblocked, and implementation still awaits the explicit go.
* docs: finalize agent knowledge-base spec as ready with caveatsCraig Jennings5 days2-84/+236
| | | | | | I ratified all seven decisions: the org-roam KB is the shared agent substrate, the write boundary is read-shared write-scoped (work never writes), nodes are per-fact, agent writes land freely in the KB only, and harness memory stays as the ephemeral capture layer. The spec moves to docs/agent-knowledge-base-spec.org in spec-create format, superseding the 2026-06-05 draft. A work-root denylist classifier routes writes: personal projects write, work and unknown projects refuse and report the redacted fact. Implementation is broken into three phases and waits on confirming the denylist contents.
* feat(voice): expand skill to 45 patterns with attestation receipts and ↵Craig Jennings6 days1-0/+56
| | | | | | | | | | | | artifact budgets Two patterns kept failing in practice despite being documented (#40 praise asymmetry and the #38 terse cut), so I made the walk verifiable and closed the content gap behind tangled review text. The high-recurrence set (#13, #37, #38, #40, #42) now gets per-pattern attestation receipts. The anti-AI audit runs after the terse pass so the audited text is the text that ships. Short personal-mode artifacts get a compact output format, and a write-back step puts the voiced text in the file the publish flow posts from. Four patterns are new: #42 finding stems (one claim per sentence in review findings), #43 single-sentence paragraph cadence, #44 parenthetical asides, #45 declarative register marker. #37 exempts verdict formulas. #40 covers verification narration. #13 and #33 carry the self-discipline framing. A per-artifact budgets table makes terse a checkable budget instead of an adjective. The profile gains paired entries with the approved worked examples, and commits.md plus no-approvals.org drop hardcoded pattern counts so the next addition doesn't re-drift them.
* feat(workflows): promote reusable spec-review checks from emacs-d review passesCraig Jennings10 days1-0/+52
| | | | | | I folded the reusable, product-neutral checks from two emacs-d review passes into the canonical spec-review.org, so they survive the startup rsync and reach every project instead of living only in a downstream copy. The additions cover package-readiness and Makefile scope, actionable error strings, observability and diagnostics, long-running performance and failure-mode research, defcustom surface, a documentation plan, architecture weak-point mitigation, simplicity controls, extension/plugin developer experience, comparable-product sentiment, terminal-state discovery, CLI-wrapper value, and rollout/rollback, plus three reviewer principles and a generalizable-question harvesting rule. The promotion is a pure superset. Every change adds or expands a generic check, nothing regresses. Project-specific findings stayed in the source spec. The handoff that asked for this is preserved under docs/design.
* docs(design): add org-roam knowledge-base spec for shared agent memoryCraig Jennings11 days1-0/+84
| | | | The spec adopts the existing ~/sync/org/roam/ KB (Syncthing-synced, 484 files) as the shared store agents read from and write to, so cross-machine memory sync comes for free instead of needing new infrastructure. It recommends the mechanics (queried as files, capture in harness memory then promote durable facts to the KB, a claude-rules pointer, an :agent: write schema) and leaves the work/personal write boundary for ratification. Supersedes the dedicated-repo and two-tier approaches for the storage-and-sync half.
* feat(flush): read notes.org before the anchor on resumeCraig Jennings13 days1-0/+24
| | | | | | On a flush resume, the SessionStart(clear) hook now reads .ai/notes.org key sections before the session-context anchor. The anchor carries session state. notes.org carries the project's standing knowledge (code-repo paths, conventions, key contacts) that a resumed session needs to act correctly. A resume with the anchor alone floundered on context notes.org already documents, hunting for a repo whose path notes.org records. The hook guards on notes.org presence: when it's absent, the resume reads the anchor alone. flush/SKILL.md documents the same read order so the skill and the hook agree. The handoff rationale is preserved in docs/design/2026-06-02-flush-promotion.org.
* docs(flush): preserve flush promotion handoff bundle as provenanceCraig Jennings13 days1-0/+209
|
* docs: add cross-project pattern catalog specCraig Jennings13 days1-0/+49
|
* chore(intake): triage codex backlog into 5 actionable TODOs + dispositionsCraig Jennings2026-05-281-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Walked the 14-item codex enhancement backlog with Craig and recorded dispositions in docs/design/2026-05-28-rulesets-enhancement-backlog.org under a new "Triage Dispositions" section. The triage TODO closed. Accept (filed below as TODOs): - Item #8 .aiignore for agent inventory exclusions ([#C] :chore:) - Item #10 Workflow test harness for drift and integrity tests ([#C] :feature:) Pilot or scope-limit (filed below): - Item #5 Token-tier pilot on startup.org and triage-intake.org ([#C] :feature:) - Item #7 Canonical/mirror drift detection via pre-commit hook or make sync-check ([#C] :feature:quick:solo:). Rejected the wholesale dedupe. The dual source is a feature. - Item #12 make status only ([#C] :feature:quick:solo:). Rejected the rest of #12. Convention, not tracked: - Item #11 script interface normalization (adopt as scripts are touched) - Item #13 ADR layer (watch-and-wait on growth signal) Reject with rationale (recorded in the backlog doc): - Item #1 broader runtime-neutral arc. Heavy infrastructure for marginal payoff at current use. - Item #3 INDEX.org compression. Already token-efficient. Parallel layer adds drift risk. - Item #4 universal catalog.json. Looks valuable on paper, rots fast in practice. - Item #6 install manifest JSON. Current Makefile pattern works. Data layer adds indirection. - Item #9 project-facts.org. Duplicates notes.org's role. - Item #14 local model profiles. Premature without a real use case. Item #2 (per-agent live session files) was already filed earlier today as the Codex Phase 1 [#B] TODO, slicing the broader item #1 arc.
* chore(intake): file codex enhancement backlog as docs/design + triage TODOCraig Jennings2026-05-281-0/+426
| | | | | | | | | | | | | | | | | | Codex left a 14-item enhancement backlog for rulesets at inbox/enhancements.org overnight. Moved it to docs/design/2026-05-28-rulesets-enhancement-backlog.org as the canonical reference and filed a single [#C] :spec: TODO to walk the items and decide accept-as-TODO, fold, defer, or reject for each. Two of the 14 already have homes: item #1 (runtime-neutral core) aligns with the existing Generic agent runtime support spec (#16), and item #2 (per-agent live session files) is exactly the Codex Phase 1 [#B] TODO filed earlier today. The triage focuses on the remaining 12. Also cleared the last-session PROCESSED-prefixed inbox file (open-tasks-hybrid-friction-cascade). The cascade+friction restructure it tracked landed in this morning's open-tasks.org edits, so the reference is no longer needed.
* chore(audit): task-audit pass + pearl intake from 2026-05-28 morningCraig Jennings2026-05-282-0/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All 16 open tasks bucketed and updated. 14 received autonomous Phase C edits (13 type-tag additions per the new scheme plus #15's body refresh for the accumulating pearl signal). Phase D adjudicated two priority bumps and the morning's inbox spillover. Phase E stamped :LAST_AUDIT: in notes.org Workflow State. Autonomous Phase C: - Tagged tasks 1-11 and 13-14 with their type tag (:feature:, :chore:, :spec:), bumped LAST_REVIEWED to 2026-05-28. Tasks 12, 15, 16 already carried type tags. - Refreshed task #15 body to reference the four pearl pattern-catalog notes now in docs/design/ (six worked patterns total). Phase D adjudication: - #15 (cross-project pattern catalog) bumped [#C] to [#B]. Pearl shipped 6 worked examples plus a synthesizing principle and is asking for spec-review iterations. Design questions still open but evidence is past the tipping point. - Filed new [#B] :feature: TODO for the codex Phase 1 race-fix (AI_AGENT_ID + session-context.d/<id>.org), lifted from the broader runtime spec (#16). Phase 1 alone is low-risk and fixes a real correctness issue under simultaneous agents. Pearl intake (4 inbox files from this morning): - Moved 0155 (patterns 4-5) and 0303 (pattern 6) into docs/design/ alongside the prior two pattern-catalog notes. Referenced from #15. - Filed new [#C] :chore:quick:solo: TODO for pearl 0138's --archive-done sweep at the start of open-tasks.org Phase A. - Filed new [#C] :feature:solo: TODO for pearl 0226's spec-review.org Phase 6 implementation-task enumeration. - Deleted 0124. Already implemented this session as the audit-warranted pre-step plus the LAST_AUDIT stamp now live in the workflow files.
* chore(intake): file pearl pattern-catalog and codex runtime spec as TODOsCraig Jennings2026-05-283-0/+580
| | | | Moved three inbox notes into docs/design/ so the task body links survive: pearl's two pattern-catalog handoffs and codex's v0 generic-agent-runtime spec. Added two corresponding TODOs under Rulesets Open Work, both [#C].
* docs(design): record task-review Shape B revisionCraig Jennings2026-05-201-14/+28
| | | | | | The spec recommended an Emacs keystroke mode (task-review.el). Implementation went the other way — a pure Claude workflow, no elisp — because the interactive mode would couple a rulesets-owned file to archsetup's init.el, and the daily Claude touchpoint already exists in daily-prep. I added a Revision section at the top recording the change: pure workflow, rulesets-owned, the task-review.org / open-tasks.org name swap, the staleness --list selection, and the startup nudge promoted to template-level. The elisp architecture and ERT sections stay as a record of the abandoned approach, flagged superseded. The todo task moves to DOING with per-component status: everything but the smoke test is done, and component 3 (the elisp) is dropped.
* docs(design): task-review spec + filed [#A] taskCraig Jennings2026-05-161-0/+335
| | | | | | docs/design/task-review.org captures the brainstorm output for a daily 5-min keystroke-driven review habit that walks 7 oldest-unreviewed top-level [#A]/[#B]/[#C] tasks per session, rotating through the list over ~12 days. Replaces wrap-it-up.org's date-coverage scan once implemented; the watchdog flips from "do all priorities have dates?" to "is the review habit happening?" with a 30-day threshold. todo.org gets a [#A] entry at the top of Rulesets Open Work pointing at the spec, so the implementation work isn't lost. Six components in the spec's Next Steps: extract task-review-staleness.sh, replace the wrap-up section, author task-review.el in archsetup, author the workflow file plus INDEX entry, add the startup nudge, smoke test.
* feat: architecture skill suite — design, decide, document, evaluateCraig Jennings2026-04-192-0/+613
Four chained Claude Code skills covering the full architecture lifecycle: arch-design Intake (stakeholders, scale, quality attributes, constraints) → candidate paradigms with honest trade-off analysis → recommendation + open-decision list → .architecture/brief.md arch-decide ADR creation and management. Five template variants (MADR, Nygard, Y-statement, lightweight, RFC). Lifecycle, review process, adr-tools automation. Forked from wshobson/agents (MIT). LICENSE preserved. arch-document Full arc42-structured documentation (12 sections) from brief + ADRs + codebase. Dispatches to c4-analyze / c4-diagram for Context, Building Block, Runtime, Deployment diagrams. arch-evaluate Audits implementation against stated architecture. Framework-agnostic checks (cyclic deps, stated-layer violations, public API drift, forbidden deps) run on any language. Opportunistically invokes language-specific linters when configured (dependency-cruiser for TS, import-linter for Python, go vet + depguard for Go). Never installs tooling. Supporting docs at docs/architecture/: - README.md suite overview, install steps, per-language linter install commands (Python import-linter, TS dependency-cruiser, Go golangci-lint, Java ArchUnit future, C/C++ IWYU future), typical flow through the chain - v2-todo.org deferred features (auto-gen linter configs, ArchUnit, CI mode, DDD aggregate boundaries, visual dep graphs, retroactive layering inference) Makefile SKILLS extended with the four new entries; make install symlinks them to ~/.claude/skills/ alongside existing skills. Landscape: arch-decide fills the well-covered ADR bucket by adopting the strongest community offering rather than reinventing. arch-design and arch-evaluate fill gaps where no general-purpose skill existed. arch-document fills the arc42 gap (C4 diagrams already covered by sibling skills).