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
2 changes: 1 addition & 1 deletion .claude/memory/feedback_read_source_before_designing.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ type: feedback

Before designing a fix that depends on how a subsystem behaves, **read the source that implements that behaviour** — not the docs, not your prior mental model, not the test names, and **not a diagnosis handed to you in an issue, spec, or ticket**. A confident root-cause written by someone else is an assumption to verify against current HEAD, not a fact — especially when the artefact predates recent commits. Reading the actual code upfront routinely avoids multiple rounds of fix proposals that turn out to be solving the wrong problem.

**Why:** first ported from IMS's harness-hardening review (a sibling .NET/spec-kit repo) as a preventive practice, then confirmed by a NetPace incident. In IMS, a subsystem's behaviour was repeatedly guessed at ("the system probably does X") across three iterations of a proposed fix, when reading a single line of the actual implementation would have surfaced the real design gap immediately. In NetPace, a `/ship` road-test began from issue #220's confident "servers are probed concurrently" root-cause; a branch and test edit were made straight off it — but `GetFastestServerByLatencyAsync` is a sequential `for` loop, and the flake had already been fixed by #221's `SynchronousProgress`. Three clean-context reviewers had to catch that the whole branch premise was invalid. One `Read` of `OoklaSpeedtest.cs` before editing would have surfaced it immediately. See [[feedback_docs_no_forward_references]] for the sibling rule that docs (and by extension issues) can drift from current code.
**Why:** confirmed by a NetPace incident. A `/ship` road-test began from issue #220's confident "servers are probed concurrently" root-cause; a branch and test edit were made straight off it — but `GetFastestServerByLatencyAsync` is a sequential `for` loop, and the flake had already been fixed by #221's `SynchronousProgress`. Three clean-context reviewers had to catch that the whole branch premise was invalid. One `Read` of `OoklaSpeedtest.cs` before editing would have surfaced it immediately. See [[feedback_docs_no_forward_references]] for the related rule that docs (and by extension issues) can drift from current code.

**How to apply:** when a proposed fix rests on "the system does X" / "I believe X happens because..." — or on a root-cause quoted from an issue/spec/ticket — stop and grep or read the exact code that implements X before sketching the fix. When the work *starts* from an issue, treat verifying its diagnosis against HEAD as the first step, before creating a branch or editing. Applies especially to `ISpeedTestService` implementations, provider-specific behaviour in `Clients/{ProviderName}/`, and anywhere a fix is being designed against assumed rather than confirmed behaviour.
2 changes: 1 addition & 1 deletion .specify/templates/overrides/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Resolution order (highest → lowest precedence):

## Current overrides

| File | Why IMS overrides it |
| File | Why this repo overrides it |
|------|----------------------|
| `spec-template.md` | Bakes in the `**Scenario: [name]**` label convention required by [Constitution principle VIII](../../memory/constitution.md) for AC-to-test traceability. |

Expand Down
250 changes: 0 additions & 250 deletions docs/agentic-software-development-workflow.md

This file was deleted.

Loading
Loading