Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c8557e2
docs(research): non-goals reassessment + fallow clone deep-dive map (…
SutuSebastian May 4, 2026
ac0c0d7
docs(research): triangulate non-goals reassessment vs descriptive bas…
SutuSebastian May 4, 2026
a250f66
docs(research): scrub local user paths from non-goals doc + new lesson
SutuSebastian May 4, 2026
9dfb65f
docs(lessons): add 'never commit local user paths' lesson (PR #58 catch)
SutuSebastian May 4, 2026
a5cab90
docs(research): delete codemap-capability-surface-2026-05.md (existen…
SutuSebastian May 4, 2026
2803d9d
docs(research): align § 5 (c) effort with § 1.3 / § 8 (M, not S)
SutuSebastian May 4, 2026
c3ed3e9
docs(research): split § 3 into moat (load-bearing) vs ergonomic limits
SutuSebastian May 4, 2026
6f845ba
docs(research): § 5 ship sequence — parallel plan-PR for (b) at T+0
SutuSebastian May 4, 2026
0b9d878
docs(research): § 2 reframed via § 3 moats (taxonomy + verdict cross-…
SutuSebastian May 4, 2026
96f6c4e
docs(research): § 1.7 Mermaid — bounded-input contract (moat A)
SutuSebastian May 4, 2026
2933cf0
docs(research): § 1.10 rename — recipe-shape (moat A) + parametrised …
SutuSebastian May 4, 2026
a636eb0
docs(research): § 6 — close Q1 (daemon-default), Q3 (LSP shape), Q4 (…
SutuSebastian May 4, 2026
1526d30
docs(research): § 6 Q2 closed — FTS5 default-OFF, both config + CLI
SutuSebastian May 4, 2026
7f78d9b
docs(research): § 6 Q5 closed — history table deferred + full grill f…
SutuSebastian May 4, 2026
67ed2d8
docs(research): § 1.9 reframe + § 3 "No telemetry upload" floor
SutuSebastian May 4, 2026
efc1ebf
docs(research): drop all fallow framing — codemap is structurally unique
SutuSebastian May 4, 2026
537cbb4
docs(research): retract uniqueness claim — honest cohort positioning
SutuSebastian May 4, 2026
a5b75df
docs(research): § 1.4 refactor-risk formula — orphan + NULL fixes + c…
SutuSebastian May 4, 2026
983c67f
docs(research): § 1.5 boundary violations — Shape A directional rules
SutuSebastian May 4, 2026
5bdd0ca
docs(research): § 1.1, 1.6, 1.8 sanity sharpening (gotchas + envelopes)
SutuSebastian May 4, 2026
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
2 changes: 2 additions & 0 deletions .agents/lessons.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ Each entry is a single bullet: `- **<topic>** — <lesson>`. Newest entries at t
- **backticks inside SQL or help-text template literals** — never put a literal backtick inside a `` `...` `` template-literal string. `db.ts` SQL DDL strings (multi-line CREATE TABLE templates) and `printQueryCmdHelp()` (multi-line help text) are both `` `...` `` template literals; an inner backtick — typically a Markdown-style code-fence around a flag like `` `--full` `` — terminates the literal early and the parser blows up several lines later with cryptic "expected `,` or `)`" errors. **Use plain prose in those strings** (`--full` not `` `--full` ``), or escape (`` \` ``) if you really need the character. Hit twice (B.7 + B.6 PR #30); the lesson is general — applies to any TS template literal that gets pasted prose later, not just SQL / help text.
- **STOP-before-Grep applies to symbol lookups too** — `Grep` for symbol names like `printQueryResult`, `getCurrentCommit`, `dropAll` violates the [`codemap` rule](rules/codemap.md). The codemap query `SELECT file_path, line_start FROM symbols WHERE name = '<X>'` answers it faster and without scanning. Reach for `Grep` only when the question is content-shaped (regex over file bodies, finding pattern usages inside function bodies, etc.) — not when it's "where is X defined / who calls X / what does file Y export." This was a PR #30 self-correction.
- **PR / issue / comment bodies always go through a temp file** — never pass markdown bodies via shell heredoc to `gh pr create --body "$(cat <<'EOF'…)"` / `gh pr edit --body …` / `gh pr comment --body …` / `gh issue create --body …` / `gh api` `--field body=…`. Backticks inside the heredoc (every code span and code fence) get shell-escaped to `\`` and render literally on GitHub — every recipe id, file path, flag, SQL fragment, and code fence in the rendered body comes out as `\`coverage\``instead of`coverage`. Pattern: write the body to a temp file (`Write`to`/tmp/pr-<n>-body.md`), pass `--body-file /tmp/pr-<n>-body.md`, then delete the temp file. Cost is one extra tool call; saves redoing every PR body that has more than a few backticks. Hit on PR #57 — final body was a wall of `\`` artifacts until rewritten via temp file.
- **Never commit absolute local user paths** — no `/Users/<name>/…`, `/home/<name>/…`, `~/…`, or `file:///` URIs in any tracked doc, code, comment, or PR body. Reasons: (1) leaks the maintainer's directory structure / username to public mirrors; (2) every other contributor's paths differ — the reference is dead on their machine; (3) a `git clone` of someone else's machine isn't a fact we can cite as a "source for deep-dives" — public upstream URLs are. Pattern: cite `https://github.com/<org>/<repo>` (with optional `/tree/<sha>/<path>`) for upstream sources; use repo-relative paths (`docs/foo.md`, `src/bar.ts`) for in-tree references. Hit on PR #58 first draft — referenced the local fallow clone path in the research note before the user caught it.
- **Prescriptive research notes pin every concrete claim before recommending a ship sequence** — when a research/plan-shape doc proposes work (effort estimates, capability inventories, "we already do X" framing), every concrete claim needs a `file:line` / `codemap query` / `rg` / `--recipes-json` reference a reviewer can re-run. Reasoning-from-substrate intuition without pinning ships errors: "the AST walker already counts nodes" / "fan-in detects orphans" / "the `re_export_source` column doesn't exist" — all real errors caught on PR #58 by triangulating against the codebase. Don't ship a peer / parallel "descriptive baseline" doc to triangulate against (Rule 1 violation — it duplicates `architecture.md` / `db.ts` / `--recipes-json`); instead, either (a) pin claims in the prescriptive doc itself, or (b) self-audit by re-running every claim against the canonical home before committing. Either path beats the "dual descriptive + prescriptive doc" pattern on docs-governance grounds.
Loading
Loading