Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 0 additions & 66 deletions .context/DECISIONS.md
Original file line number Diff line number Diff line change
@@ -1,71 +1,5 @@
# Decisions

<!-- INDEX:START -->
| Date | Decision |
|----|--------|
| 2026-07-04 | Statusline informs, never gates |
| 2026-07-03 | Keep sonnet-4-6 at the 200k default despite the API catalog listing 1M |
| 2026-06-07 | ctx-dream executor is a documented contract, not a hardcoded cron/claude assumption |
| 2026-06-07 | Output belongs in write/ — taxonomy and emission style (consolidated) |
| 2026-06-07 | Package taxonomy and shared-code placement (consolidated) |
| 2026-06-07 | Error handling: centralized in internal/err, domain-file taxonomy (consolidated) |
| 2026-06-07 | config/ as constants home and the magic-value audit (consolidated) |
| 2026-06-07 | YAML text externalization, init, and drift guards (consolidated) |
| 2026-06-07 | CWD-anchored context model (consolidated) |
| 2026-06-07 | Encryption key resolution and migration (consolidated) |
| 2026-06-07 | ctxctl maintainer binary and out-of-band audit channel (consolidated) |
| 2026-06-07 | KB editorial pipeline (Phase KB) design (consolidated) |
| 2026-06-07 | Companion-tool integration: peer-MCP, no gateway (consolidated) |
| 2026-06-07 | Localizable vocabulary and i18n primitives (consolidated) |
| 2026-06-07 | Embedded assets and editor-integration harnesses (consolidated) |
| 2026-06-07 | Context injection, hooks, and session-state architecture (consolidated) |
| 2026-06-06 | ctx-dream: standalone proposing memory consolidator (Option B), human-gated via serendipity |
| 2026-05-31 | Journal screen renders ctx journal source verbatim instead of parsing it |
| 2026-05-31 | ctx Desktop shells out via std::process::Command, not tauri-plugin-shell |
| 2026-05-30 | Name the add JSON-ingest flag --json-file, not --json |
| 2026-05-28 | Memory pressure detection uses OS-native signals (macOS pressure level + Linux PSI), not occupancy |
| 2026-05-24 | Pad snapshot-on-mutate at the store.WriteEntries choke point |
| 2026-05-20 | Gitignore .context/handovers/; track only .gitkeep |
| 2026-04-16 | Deprecate and remove ctx backup |
| 2026-04-14 | doc.go quality floor: behavior-grounded, ~25-100 body lines, related-packages section required |
| 2026-04-14 | Bootstrap stays under ctx system bootstrap (reverted experimental top-level promotion) |
| 2026-04-14 | Title Case style for docs is AP-leaning with explicit ambiguity carve-outs |
| 2026-04-11 | Journal stays local; LEARNINGS.md is the shareable layer |
| 2026-04-11 | `Entry.Author` is server-authoritative, not client-authoritative |
| 2026-04-09 | Architecture skill pipeline is a triad not a quartet |
| 2026-04-08 | Remove #done tag convention, simplify task archival |
| 2026-04-06 | Use hook relay for session provenance instead of JSONL parsing or env vars |
| 2026-04-01 | IRC to Discord as primary community channel |
| 2026-04-01 | AST audit tests live in internal/audit/, one file per check |
| 2026-04-01 | Rename ctx hook → ctx setup to disambiguate from the hook system |
| 2026-03-31 | Split log into log/event and log/warn to break import cycles |
| 2026-03-30 | Flags-not-subcommands for journal source: list and show are view modes on a noun, not independent entities |
| 2026-03-30 | Journal consumed recall — recall CLI package deleted |
| 2026-03-25 | Architecture analysis and enrichment are separate skills — constraint is the feature |
| 2026-03-25 | Prompt templates removed — skills are the single agent instruction mechanism |
| 2026-03-24 | Write-once baseline with explicit end-consolidation for consolidation lifecycle |
| 2026-03-18 | Singular command names for all CLI entities |
| 2026-03-16 | Rename --consequences flag to --consequence for singular consistency |
| 2026-03-14 | System path deny-list as safety net, not security boundary |
| 2026-03-14 | Config-driven freshness check with per-file review URLs |
| 2026-03-13 | Delete ctx-context-monitor skill — hook output is self-sufficient |
| 2026-03-12 | Rename ctx-map skill to ctx-architecture |
| 2026-03-06 | Drop fatih/color dependency — Unicode symbols are sufficient for terminal output, color was redundant |
| 2026-03-05 | Gitignore .context/memory/ for this project |
| 2026-03-04 | Interface-based GraphBuilder for multi-ecosystem ctx deps |
| 2026-03-02 | Billing threshold piggybacks on check-context-size, not heartbeat |
| 2026-03-01 | PersistentPreRunE init guard with three-level exemption |
| 2026-03-01 | Heartbeat token telemetry: conditional fields, not always-present |
| 2026-03-01 | Promote 6 private skills to bundled plugin skills; keep 7 project-local |
| 2026-02-27 | Context window detection: JSONL-first fallback order |
| 2026-02-26 | ctx init and CLAUDE.md handling (consolidated) |
| 2026-02-26 | Task and knowledge management (consolidated) |
| 2026-02-26 | Agent autonomy and separation of concerns (consolidated) |
| 2026-02-26 | Security and permissions (consolidated) |
| 2026-02-27 | Webhook and notification design (consolidated) |
| 2026-04-25 | Use t.Setenv for subprocess env in tests, not append(os.Environ(), ...) |
<!-- INDEX:END -->

<!-- DECISION FORMATS

## Quick Format (Y-Statement)
Expand Down
105 changes: 10 additions & 95 deletions .context/LEARNINGS.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,101 +14,16 @@ DO NOT UPDATE FOR:
- Opinions without evidence
-->

<!-- INDEX:START -->
| Date | Learning |
|----|--------|
| 2026-07-04 | Probing whether a ctx subcommand exists needs bare invocation, not --help |
| 2026-07-04 | GitNexus prunes registry entries whose repo paths don't resolve in-container |
| 2026-07-04 | Compliance tests are the style guide for new commands |
| 2026-07-04 | Typed JSON round-trips silently drop user-owned keys |
| 2026-07-03 | New Claude model families silently fall to the 200k default in ModelContextWindow |
| 2026-06-07 | Pin an on-disk contract before splitting work across parallel agents |
| 2026-06-07 | site/ is tracked build output — rebuild and bundle it with doc commits |
| 2026-06-07 | ctx-dream is headless-first; invoking /ctx-dream interactively is debugging, not the UX |
| 2026-06-07 | ctx-dream design principles (consolidated) |
| 2026-06-07 | internal/audit & compliance gates for new code (consolidated) |
| 2026-06-07 | Error handling: sentinels, unwrapping, and silent discards (consolidated) |
| 2026-06-07 | git CLI wrapping quirks (consolidated) |
| 2026-06-07 | TypeScript/integration test surfaces & exclusion rot (consolidated) |
| 2026-06-07 | Editorial KB pipeline: design epistemology (consolidated) |
| 2026-06-07 | Documentation, template & asset drift (consolidated) |
| 2026-06-07 | User-facing text & magic-string discipline (consolidated) |
| 2026-06-07 | Constant placement & helper smells (consolidated) |
| 2026-06-07 | Convention enforcement: mechanical gates over prose (consolidated) |
| 2026-06-07 | Go toolchain, gofmt & build-tag pitfalls (consolidated) |
| 2026-06-07 | Stale-task triage & verify-before-acting (consolidated) |
| 2026-06-07 | Refactor mechanics: subagents, cascades & golden fixtures (consolidated) |
| 2026-06-07 | Linting, gosec & I/O chokepoints (consolidated) |
| 2026-06-07 | Hook mechanics, output channels & compliance (consolidated) |
| 2026-06-07 | State, tombstones, logs & filesystem hygiene (consolidated) |
| 2026-06-07 | Host-pressure alerting: use derivatives, not levels (consolidated) |
| 2026-06-07 | Go test isolation & patterns (consolidated) |
| 2026-06-01 | Guard managed blocks before regenerating; don't trust the span to be machine-owned |
| 2026-05-31 | macOS GUI apps inherit a minimal PATH; augment it to find a user-installed CLI |
| 2026-05-31 | Tauri 2 requires rustc >= 1.88; bump the toolchain before cargo check |
| 2026-05-28 | ctx kb: single topic-enumeration site; life-stage count is consumer-side |
| 2026-05-28 | A non-root Go module nested under the main module's path CAN import its internal/ packages |
| 2026-05-28 | cobra's legacyArgs lets unknown subcommands silently succeed on non-root groups |
| 2026-05-25 | Skill shipping location: _ctx- prefix is repo-internal, internal/assets/claude/skills/ctx-* is bundled and shipped |
| 2026-05-23 | Unicode block separation makes diacritic-stripping surgical — no per-script handling needed for Arabic/Indic/Hebrew/CJK |
| 2026-05-20 | macOS /var symlink trips path-equality; use EvalSymlinks with parent-resolution fallback |
| 2026-05-20 | Handover filenames are archaeology; parse by generated-at, not filename |
| 2026-05-20 | /ctx-plan is named after its input, not its output |
| 2026-05-17 | Creator confusion is the strongest doc-quality signal — louder than any user signal |
| 2026-05-17 | `_helpers.go` / `_utils.go` filenames are project anti-pattern; use domain nouns |
| 2026-05-11 | Naive Markdown line-sweep corrupts multi-line code spans and YAML lists |
| 2026-05-08 | Cursor imports Claude Code hooks and sets CLAUDE_PROJECT_DIR per workspace |
| 2026-04-14 | Constitution forbids context window as a deferral excuse |
| 2026-04-14 | docs/cli/system.md and embed/cmd/system.go diverged on bootstrap promotion intent |
| 2026-04-14 | Raft-lite trade-off is the load-bearing choice in internal/hub |
| 2026-04-14 | Brand-name handling in title-case engines must cover possessives |
| 2026-04-13 | GPG signing from non-TTY contexts requires pinentry-mac (or equivalent) |
| 2026-04-13 | rc.ContextDir() is the single source of truth — fix the resolver, not callers |
| 2026-04-09 | Pad index shifting is a real UX bug in batch operations |
| 2026-04-03 | Bulk rename and replace_all hazards (consolidated) |
| 2026-04-03 | Import cycles and package splits (consolidated) |
| 2026-04-03 | Skill lifecycle and promotion (consolidated) |
| 2026-04-03 | desc.Text() is the single highest-connectivity symbol in the codebase |
| 2026-04-01 | Contributor PRs based on older code reintroduce removed features |
| 2026-03-31 | Convention audits must check cmd/ purity, not just types and docstrings |
| 2026-03-31 | JSON Schema default fields cause linter errors with some validators |
| 2026-03-30 | lint-docstrings.sh greedy sed hid all return-type violations |
| 2026-03-24 | lint-drift false positives from conflating constant namespaces |
| 2026-03-23 | Typography detection script needs exclusion lists for intentional uses |
| 2026-03-20 | Commit messages containing script paths trigger PreToolUse hooks |
| 2026-03-18 | Lazy sync.Once per-accessor is a code smell for static embedded data |
| 2026-03-17 | Write package output census: 69 trivial/simple, 38 consolidation candidates, 18 complex |
| 2026-03-15 | Contributor PRs need post-merge follow-up commits for convention alignment |
| 2026-03-06 | Stats sort uses string comparison on RFC3339 timestamps with mixed timezones |
| 2026-03-05 | Blog post editorial feedback is higher-leverage than drafting |
| 2026-03-04 | CONSTITUTION hook compliance is non-negotiable — don't work around it |
| 2026-03-02 | Hook message registry test enforces exhaustive coverage of embedded templates |
| 2026-03-01 | Model-to-window mapping requires ordered prefix matching |
| 2026-03-01 | TASKS.md template checkbox syntax inside HTML comments is parsed by RegExTaskMultiline |
| 2026-02-28 | ctx pad import, ctx pad export, and ctx system resources make three hack scripts redundant |
| 2026-02-28 | Getting-started docs assumed Claude Code as the only agent |
| 2026-02-28 | Plugin reload script must rebuild cache, not just delete it |
| 2026-02-27 | site/ directory must be committed with docs changes |
| 2026-02-27 | Doctor token_budget vs context_window confusion |
| 2026-02-27 | Drift detector false positives on illustrative code examples |
| 2026-02-26 | Webhook silence after ctxrc profile swap is the most common notify debugging red herring |
| 2026-02-26 | Agent context loading and task routing (consolidated) |
| 2026-02-26 | PATH and binary handling (consolidated) |
| 2026-02-26 | Task management and exit criteria (consolidated) |
| 2026-02-26 | Agent behavioral patterns (consolidated) |
| 2026-02-26 | ctx add and decision recording (consolidated) |
| 2026-02-24 | CLI tools don't benefit from in-memory caching of context files |
| 2026-01-28 | IDE is already the UI |
| 2026-04-29 | BunShell ctx.$ calls echo stdout to OpenCode's process unless .quiet() is set — leaks visible noise |
| 2026-04-29 | OpenCode plugin compaction interop is breadcrumb-mediated: own your context preservation explicitly |
| 2026-04-29 | @opencode-ai/plugin event hook is a single dispatcher, not an object of named handlers |
| 2026-04-29 | OpenCode plugin hooks like shell.env take (input, output) and mutate; returned objects are ignored |
| 2026-04-29 | OpenCode shell.env injects env only into agent's shell tool, not into plugin's own ctx.$ calls |
| 2026-04-26 | OpenCode auto-loads only flat .ts files under .opencode/plugins/; subdirectories are ignored |
| 2026-04-26 | OpenCode opencode.json MCP shape: command is Array<string>, no separate args field |
| 2026-04-26 | ctx system help can list project-local hooks not in the Go binary |
| 2026-04-25 | Confident code comments can pull an LLM away from first-principles knowledge |
<!-- INDEX:END -->

---

## [2026-07-06-214523] git filter-branch leaves the originals in refs/original and the reflog

**Context**: Rewrote the branch to strip agent Co-Authored-By trailers and called it clean after checking only the branch tip; the originals were still recoverable and visible in git log --all.

**Lesson**: filter-branch rewrites the ref but keeps originals in refs/original/* and every reflog; clean requires update-ref -d on refs/original, git reflog expire --expire=now --all, and git gc --prune=now, then a re-check across ALL refs and dangling objects. Rewriting an annotated/signed tag strips its GPG signature.

**Application**: After any history rewrite: purge refs/original + reflog + gc, then verify agent trailers are zero across the whole object store, not just main..HEAD.

---

Expand Down
Loading
Loading