Skip to content

Commit 8d3b901

Browse files
committed
Refresh README workflow guidance
1 parent bb157f0 commit 8d3b901

File tree

1 file changed

+30
-6
lines changed

1 file changed

+30
-6
lines changed

README.md

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ For example, a typical .NET repo baseline can install `mcaf-dotnet` as the entry
116116
In that setup, `mcaf-dotnet` knows when to open the more specific .NET skills, the repo-root lowercase `.editorconfig` is the default source of truth for formatting and analyzer severity, and `AGENTS.md` records the exact `dotnet build`, `dotnet test`, `dotnet format`, `analyze`, and coverage commands. Nested `.editorconfig` files are allowed when they serve a clear subtree-specific purpose, such as stricter domain rules, generated-code handling, test-specific conventions, or legacy-code containment.
117117
For .NET code changes, the task is not done when tests are green if the repo also configured formatters, analyzers, coverage, architecture tests, or security gates. Agents should run the repo-defined post-change quality pass before completion.
118118
If the repo standardizes on concrete tools, install the matching tool skills as well. Typical open or free .NET additions include `mcaf-dotnet-format`, `mcaf-dotnet-code-analysis`, `mcaf-dotnet-analyzer-config`, `mcaf-dotnet-stylecop-analyzers`, `mcaf-dotnet-roslynator`, `mcaf-dotnet-meziantou-analyzer`, `mcaf-dotnet-cloc`, `mcaf-dotnet-coverlet`, `mcaf-dotnet-profiling`, `mcaf-dotnet-quickdup`, `mcaf-dotnet-reportgenerator`, `mcaf-dotnet-resharper-clt`, `mcaf-dotnet-stryker`, `mcaf-dotnet-netarchtest`, `mcaf-dotnet-archunitnet`, and `mcaf-dotnet-csharpier`. `mcaf-dotnet-codeql` stays available, but should be chosen only when its hosting and licensing model fits the repository.
119+
Every `mcaf-dotnet*` tool skill should include a `Bootstrap When Missing` section so agents can detect, install, verify, and first-run the tool without guessing.
119120

120121
### 2.5 Context Rules
121122

@@ -148,21 +149,24 @@ The goal is enough automated evidence to trust the change.
148149
### 3.2 Verification Rules
149150

150151
- Prefer TDD for new behaviour and bug fixes: start with a failing test, make it pass, then refactor.
151-
- New or changed behaviour is proven by automated tests.
152+
- New or changed behaviour is proven by new or updated automated tests.
152153
- Tests prove user-visible or caller-visible flows, not just isolated implementation detail.
154+
- Tests cover positive, negative, edge, and unexpected flows when the behaviour can fail in different ways.
153155
- Integration/API/UI coverage is preferred when the behaviour crosses boundaries.
154156
- Internal and external systems are exercised through real containers, test instances, or sandbox environments in primary suites.
155157
- Mocks, fakes, stubs, and service doubles are forbidden in verification flows.
156158
- Changed production code should reach at least 80% line coverage and 70% branch coverage where supported; critical flows and public contracts should reach 90% line coverage.
157-
- Coverage must not regress without an explicit exception, and coverage numbers do not replace scenario coverage.
159+
- Coverage must not regress below the pre-change baseline without an explicit exception, and coverage numbers do not replace scenario coverage.
158160
- Static analysis is part of done, not a cleanup task.
159161
- Failing tests or analyzers block completion.
162+
- The task is not done until the full relevant test suite is green, not only the newly added or changed tests.
160163

161164
### 3.3 Verification Artifacts
162165

163166
Feature docs and ADRs should point to:
164167

165168
- the scenarios that must be proven
169+
- the testing methodology for those scenarios
166170
- the commands used to prove them
167171
- the suites or artifacts that provide that proof
168172

@@ -210,7 +214,9 @@ Root `AGENTS.md` stays current with:
210214
- commands (`build`, `test`, `format`, `analyze`, `coverage` if used)
211215
- global skills and when to use them
212216
- self-learning rules
217+
- non-trivial task planning rules, including root-level `<slug>.plan.md` usage
213218
- testing discipline
219+
- done criteria for tests, coverage, and quality gates
214220
- design and maintainability rules
215221
- exception policy
216222
- topology for local `AGENTS.md` files
@@ -255,6 +261,8 @@ If the same mistake happens twice, the framework expects the rule to be made dur
255261
- Every MCAF repo has a root `AGENTS.md`.
256262
- Multi-project solutions use local `AGENTS.md` files at project roots.
257263
- Agents read root and local `AGENTS.md` before editing code.
264+
- Non-trivial tasks use a root-level `<slug>.plan.md` as the working plan.
265+
- Plans include ordered implementation steps, explicit test steps, testing methodology, and final validation commands.
258266
- Skills are preferred over improvised workflow when a skill matches the task.
259267
- Numeric maintainability limits live in `AGENTS.md`, not in framework prose.
260268

@@ -343,17 +351,28 @@ Before heavy coding:
343351

344352
### 7.2 Plan
345353

346-
For non-trivial work, record:
354+
For non-trivial work, create a root-level `<slug>.plan.md` and keep it current.
355+
The plan records:
347356

357+
- goal and scope
358+
- detailed ordered implementation steps
348359
- files or boundaries to change
349360
- tests to add or update
361+
- the testing methodology: which flows are covered, how they are verified, which commands prove them, and the required quality or coverage bar
350362
- docs to update
351363
- risks and constraints
364+
- final validation skills and commands, with reasons
365+
- checklist items and done criteria
366+
367+
Before implementation starts, run the full relevant test baseline.
368+
If anything is already failing, add each failing test to the plan with its symptom, suspected or confirmed root cause, and intended fix path.
352369

353370
### 7.3 Implement
354371

372+
- Use the Ralph Loop for non-trivial work: execute one planned step, run the relevant checks, update the plan, then move to the next step.
355373
- implement code and tests together
356374
- keep changes small and reviewable
375+
- fix failing tests deliberately, one by one, and track them in the plan until they are closed
357376
- use the architecture map and nearest local `AGENTS.md` to stay in scope
358377

359378
### 7.4 Verify
@@ -362,17 +381,20 @@ Run verification in layers:
362381

363382
1. changed tests
364383
2. related suite
365-
3. broader required regressions
366-
4. analyzers
384+
3. broader required regressions and the full relevant suite
385+
4. analyzers, formatters, and any configured architecture, security, mutation, or other quality gates
386+
5. coverage comparison against the pre-change baseline
367387

368-
### 7.5 Update Durable Context
388+
### 7.5 Update Durable Context and Close the Task
369389

370390
After implementation:
371391

372392
- update feature docs
373393
- update ADRs
374394
- update the architecture map when boundaries changed
375395
- update `AGENTS.md` or skills when rules or workflows changed
396+
- keep the plan file current until every checklist item is done
397+
- close the task only when all planned work is finished, all relevant tests are green, and coverage is at least at the starting baseline unless an explicit exception was documented
376398

377399
## 8. AI Participation Modes
378400

@@ -407,4 +429,6 @@ Adoption is complete when:
407429
- the right skills are installed
408430
- multi-project boundaries have local `AGENTS.md`
409431
- commands and docs reflect the real repo
432+
- non-trivial work is guided by a root-level `<slug>.plan.md` and the Ralph Loop
433+
- tool-specific skills document real bootstrap and install steps when the tool is missing
410434
- tests and analyzers are the real gates

0 commit comments

Comments
 (0)