From 1c80f6e0edb8e11db95bce37b0a681bb2af6b3ca Mon Sep 17 00:00:00 2001 From: Dan Moisan Date: Mon, 28 Sep 2026 16:53:55 -0400 Subject: [PATCH] docs(memory): preserve two remaining stranded lessons from stale worktrees Second cleanup-merged-worktrees consolidation, covering the two worktrees that the first pass (PR #925) left in place. - orchestrator/delegate-may-lack-bash-tool-verify-its-git-claims.md: add the task-researcher no-Bash lesson (fetch gh issue history yourself into an evidence artifact before delegating research). The draft's claim that WebFetch cannot read the repository was corrected: the repository is public and the WebFetch route is documented in task-researcher/reference_github_issue_search_without_gh.md. - prd-feature/project_671_projections_only_evidence.md (new) plus its MEMORY.md index line: fixed-filename Markdown projections and full feature-relative evidence paths, never bare evidence/ paths. - prd-feature/feedback_backticked_paths_are_the_change_footprint.md: add the evidence-paths-as-second-permitted-backtick-site rule alongside the space-in-path rule added by PR #925. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01GXh9UqqzGiTGcnJiBDsfVG --- ...ay-lack-bash-tool-verify-its-git-claims.md | 21 +++++++++++++++++++ .claude/agent-memory/prd-feature/MEMORY.md | 1 + ...ckticked_paths_are_the_change_footprint.md | 8 +++++++ .../project_671_projections_only_evidence.md | 12 +++++++++++ 4 files changed, 42 insertions(+) create mode 100644 .claude/agent-memory/prd-feature/project_671_projections_only_evidence.md diff --git a/.claude/agent-memory/orchestrator/delegate-may-lack-bash-tool-verify-its-git-claims.md b/.claude/agent-memory/orchestrator/delegate-may-lack-bash-tool-verify-its-git-claims.md index 15ebeae1b..31258890a 100644 --- a/.claude/agent-memory/orchestrator/delegate-may-lack-bash-tool-verify-its-git-claims.md +++ b/.claude/agent-memory/orchestrator/delegate-may-lack-bash-tool-verify-its-git-claims.md @@ -27,6 +27,27 @@ expected, not as evasion, and run them yourself the moment the delegate returns: - `git -C diff --cached --numstat` after staging, to confirm `.gitattributes` normalisation did what you expected. +**`task-researcher` also has no Bash tool, which makes `gh` work undelegatable (verified 2026-09-12, +issue #743 preparation).** Its granted surface is Read, Grep, Glob, WebFetch and Write only. A research +prompt that says "read issues 592, 511 and 571 including their closing comments" is therefore +unsatisfiable as written: GitHub issue bodies and comments live in no file in the tree. (The repository +is public, so `WebFetch` of `github.com/drmoisan/TaskMaster/issues/` does work — see +`task-researcher/reference_github_issue_search_without_gh.md` — but only if the prompt says so; a +prompt that names `gh` gives the agent no route.) On that run the agent produced no artifact at all for a very +long period after being handed four `gh issue view` instructions. + +The consequence is structural, not stylistic. Issue text is very often the ONLY place a root-cause +history, a premise correction, or a consolidated acceptance-criteria set exists — on #743 the whole +acceptance-criteria set lived in a consolidation comment, and the fact that the maintainer's first lead +had been refactored away was only discoverable by reading #592 against the current tree. + +**How to apply.** Before delegating research that depends on issue history, run the `gh issue view` +calls yourself and write the results into a canonical evidence artifact under +`/evidence/other/`, then point the research prompt at that FILE rather than at `gh`. There is +no SendMessage tool, so a prompt that asks for an impossible tool cannot be corrected once launched — +see [[no-sendmessage-relaunch-with-resume-brief]] and +[[agent-tool-cannot-course-correct-running-subagent]]. + Do not skip these because the delegate sounded careful. Related: [[subagent-self-reported-correction-can-be-false]] and [[feedback_verify_subagent_capability_claims]]. Note the converse also holds and is worth the same diff --git a/.claude/agent-memory/prd-feature/MEMORY.md b/.claude/agent-memory/prd-feature/MEMORY.md index 1aa8a7eae..b8859784e 100644 --- a/.claude/agent-memory/prd-feature/MEMORY.md +++ b/.claude/agent-memory/prd-feature/MEMORY.md @@ -32,3 +32,4 @@ - [500-line ceiling counts TOTAL lines](feature_line_ceiling_counts_total_lines.md) - [Negative control must isolate the code fix](feedback_negative_control_must_isolate_the_code_fix.md) - [Outcome AC when the mechanism is unverified](feedback_outcome_ac_when_mechanism_unverified.md) +- [Issue 671: projections-only evidence](project_671_projections_only_evidence.md) — no new raw TRX/coverage XML in the repo (effective 2026-09-12); name fixed-filename Markdown projections in full feature-relative backticked paths, never bare `evidence/...` diff --git a/.claude/agent-memory/prd-feature/feedback_backticked_paths_are_the_change_footprint.md b/.claude/agent-memory/prd-feature/feedback_backticked_paths_are_the_change_footprint.md index 23701320c..dedd114fe 100644 --- a/.claude/agent-memory/prd-feature/feedback_backticked_paths_are_the_change_footprint.md +++ b/.claude/agent-memory/prd-feature/feedback_backticked_paths_are_the_change_footprint.md @@ -53,6 +53,14 @@ sibling file under a space-free path, that is the reason; record it in the spec' do not "restore" the research artifact's original placement. Same mechanism makes the mandated CLAUDE.md msbuild command strings safe to quote. +**Evidence paths are the second permitted backtick site (seen on #839, 2026-09-12).** When the caller +mandates that evidence artifact paths be backticked in full, they are allowed outside the Write Set +because they fall under the feature-folder `**` glob that is itself a Write Set line; say so in the +top blockquote. Never backtick a bare repo-root `evidence/...` path (a sibling produced 44 bogus +blast-radius entries that way). Also unbacktick msbuild switch tokens such as the +TreatWarningsAsErrors property: a slash-bearing whitespace-free token is harvestable. See +[[671-projections-only-evidence]]. + **The seeded spec template is itself a source of false write claims (seen on #798, 2026-09-07).** The promotion scaffold copies `issue.md` prose into Context / Repro & Evidence, and that prose arrives with backticks already around paths that are *not* write claims: the debug-log path under diff --git a/.claude/agent-memory/prd-feature/project_671_projections_only_evidence.md b/.claude/agent-memory/prd-feature/project_671_projections_only_evidence.md new file mode 100644 index 000000000..2ff8b63dc --- /dev/null +++ b/.claude/agent-memory/prd-feature/project_671_projections_only_evidence.md @@ -0,0 +1,12 @@ +--- +name: 671-projections-only-evidence +description: Maintainer decision on issue 671 (effective 2026-09-12) - commit Markdown evidence projections only; no new raw test-result XML/TRX or coverage XML in the repo; shapes every spec's Test Strategy and evidence ACs +metadata: + type: project +--- + +By maintainer decision on issue 671, effective as of 2026-09-12, feature work commits **projections only**: numeric coverage figures and test-run summaries go into Markdown evidence artifacts under the feature folder's `evidence//` tree, and the raw tool output (TRX, Cobertura XML, .coverage) is discarded, never added to the repository. + +**Why:** Raw XML evidence bloated the repo and produced meaningless blast-radius entries; the maintainer ruled on #671 that the Markdown projection is the artifact of record. + +**How to apply:** In every spec's Test Strategy and Acceptance Criteria, name Markdown projections (Timestamp / Command / EXIT_CODE / output summary) as the evidence, and add an AC that no `.xml`, `.trx` or `.coverage` file is added by the diff. Use fixed, non-timestamped filenames for projections that ACs must name, so no `` placeholder is needed inside a backticked path; the run timestamp goes in the artifact's `Timestamp:` field. Evidence paths must be written feature-relative and in full, e.g. `docs/features/active//evidence/regression-testing/.md`, never a bare repo-root `evidence/...` (a sibling item did that on 2026-09-12 and produced 44 meaningless blast-radius entries). Related: [[backticked-paths-are-the-change-footprint]], [[full-bug-spec-only]].