acstack 0.50.4 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +14 -7
- package/agents/codex/frontend-verifier.toml +89 -6
- package/agents/codex/task-checker.toml +83 -2
- package/agents/codex/task-executor.toml +83 -1
- package/agents/codex/test-writer.toml +77 -1
- package/agents/frontend-verifier.md +13 -6
- package/agents/task-checker.md +7 -2
- package/agents/task-executor.md +7 -1
- package/agents/test-writer.md +1 -1
- package/assets/terminal-workspace/config.example.yaml +1 -1
- package/assets/terminal-workspace/helpers/acstack-md +12 -4
- package/assets/terminal-workspace/helpers/acstack-open +10 -2
- package/cli/dist/index.js +7187 -6402
- package/cli/dist/index.js.map +4 -4
- package/cli/package.json +1 -1
- package/docs/config-reference.md +113 -14
- package/docs/dev-setups.md +4 -4
- package/docs/terminal-workspace.md +1 -1
- package/docs/workflows.md +22 -16
- package/examples/design-doc/acstack/README.md +273 -0
- package/examples/design-doc/acstack/acstack.yaml +4 -0
- package/examples/design-doc/acstack/cli.yaml +5 -0
- package/examples/design-doc/acstack/design.yaml +39 -0
- package/examples/design-doc/acstack/github.yaml +12 -0
- package/examples/design-doc/acstack/host.yaml +14 -0
- package/examples/design-doc/acstack/journey.md +85 -0
- package/examples/design-doc/acstack/publication.md +16 -0
- package/examples/design-doc/acstack/review-runtime.yaml +24 -0
- package/examples/design-doc/acstack/skills.yaml +22 -0
- package/examples/design-doc/acstack/store.yaml +11 -0
- package/examples/design-doc/acstack/user.yaml +15 -0
- package/examples/design-doc/acstack/viewer.yaml +13 -0
- package/hooks/ac-writing-style-reminder.sh +7 -18
- package/hooks/communication-standard.mjs +17 -0
- package/hooks/communication-standard.sh +6 -0
- package/hooks/context-pressure.sh +2 -2
- package/hooks/hooks.json +18 -0
- package/hooks/lib/communication-standard.mjs +16 -0
- package/hooks/project-data.sh +38 -0
- package/hooks/session-start-handoff.sh +21 -7
- package/hooks/session-start.sh +9 -2
- package/orchestrator/AGENTS.md +25 -14
- package/output-styles/ac-writing-style.md +75 -276
- package/package.json +2 -1
- package/pi/agents/frontend-verifier.md +89 -6
- package/pi/agents/task-checker.md +83 -2
- package/pi/agents/task-executor.md +83 -1
- package/pi/agents/test-writer.md +77 -1
- package/pi/extension.ts +70 -12
- package/profiles/fullstack-python.yaml +1 -1
- package/profiles/node-typescript.yaml +1 -1
- package/profiles/python.yaml +1 -1
- package/skills/archive/SKILL.md +53 -36
- package/skills/bootstrap/SKILL.md +6 -6
- package/skills/bridge/SKILL-VM.md +11 -2
- package/skills/bridge/SKILL-WINDOWS.md +3 -3
- package/skills/browser-verify/SKILL.md +14 -5
- package/skills/code-review/SKILL.md +8 -2
- package/skills/commit/SKILL.md +7 -6
- package/skills/compact-and-continue/SKILL.md +9 -8
- package/skills/design-doc/SKILL.md +238 -0
- package/skills/explore/SKILL.md +1 -1
- package/skills/grilling/SKILL.md +4 -4
- package/skills/handoff/SKILL.md +4 -4
- package/skills/host/SKILL.md +1 -1
- package/skills/host/detect-host.sh +2 -2
- package/skills/host/notes.md +2 -2
- package/skills/host/questions.md +1 -1
- package/skills/implement/SKILL.md +20 -13
- package/skills/implement/decision-log.md +9 -8
- package/skills/implement/design-pass.md +16 -2
- package/skills/map/SKILL.md +15 -71
- package/skills/map/alignment.md +18 -27
- package/skills/map/frontend.md +1 -1
- package/skills/map/materialising.md +74 -0
- package/skills/map/trackers/files.md +4 -6
- package/skills/pre-commit-review/SKILL.md +15 -9
- package/skills/pre-commit-review/auto-fix.md +1 -1
- package/skills/quick-fix/SKILL.md +1 -1
- package/skills/record-context/SKILL.md +6 -6
- package/skills/setup/SKILL.md +15 -50
- package/skills/setup/browser.md +2 -2
- package/skills/setup/first-run.md +19 -8
- package/skills/setup/report.md +3 -2
- package/skills/setup/row-fixes.md +56 -9
- package/skills/sync/SKILL.md +12 -11
- package/skills/terminal-workspace/SKILL.md +1 -1
- package/skills/test-conventions/SKILL.md +2 -2
- package/skills/visual-docs/SKILL.md +69 -235
- package/skills/writing/SKILL.md +29 -217
- package/skills/writing/examples.md +62 -129
- package/docs/adr/0001-ste-writing-standard.md +0 -16
- package/docs/adr/0002-version-gate-not-auto-bump.md +0 -35
- package/docs/adr/0003-handoff-ack-command.md +0 -19
- package/docs/adr/0004-dev-setup-per-host.md +0 -13
- package/docs/adr/0005-two-orchestrators-per-host.md +0 -25
- package/docs/adr/0006-document-opener-service.md +0 -89
- package/docs/adr/0007-lead-check-reads-the-transcript.md +0 -87
- package/docs/adr/0008-cli-audits-skill-interviews.md +0 -37
- package/docs/adr/0009-verify-the-write-not-the-writer.md +0 -51
- package/docs/adr/0010-promote-dev-to-main-by-fast-forward.md +0 -115
- package/docs/adr/0011-node-header-is-the-edge-encoding.md +0 -20
- package/docs/adr/0012-node-kind-is-a-closed-set-of-five.md +0 -31
- package/docs/adr/0013-the-diagram-renderer-is-pure.md +0 -23
- package/docs/adr/0014-reading-a-node-hides-its-generated-diagram.md +0 -29
- package/docs/adr/0015-a-node-id-links-to-its-issue-through-an-anchor.md +0 -37
- package/docs/adr/0016-the-map-root-carries-no-status-of-its-own.md +0 -21
- package/docs/adr/0017-call-impeccable-copy-only-its-questions.md +0 -13
- package/docs/adr/0018-alignment-packs-use-local-viewers.md +0 -11
- package/docs/adr/index.md +0 -18
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "acstack",
|
|
3
3
|
"description": "Agentic coding stack where planning grows only as far as needed: a map of decisions, tasks, checks, and handoffs behind a pluggable tracker.",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.52.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "ac8318740"
|
|
7
7
|
},
|
package/README.md
CHANGED
|
@@ -59,7 +59,14 @@ Then, in your project:
|
|
|
59
59
|
/acstack:setup
|
|
60
60
|
```
|
|
61
61
|
|
|
62
|
-
- `/acstack:setup` detects the project type, then writes
|
|
62
|
+
- `/acstack:setup` detects the project type, then writes `.acstack/project.yaml` with workflow settings
|
|
63
|
+
- All ACStack-owned project records stay local by default under `.acstack/`
|
|
64
|
+
- Setup asks which parts to track, with none selected by default
|
|
65
|
+
- Native exceptions after the root `.gitignore` baseline let you track configuration, specs, decisions, or any other part independently
|
|
66
|
+
- See [Project data and migration](docs/config-reference.md#project-data-stays-local-by-default) for canonical paths and commands
|
|
67
|
+
- Update installed ACStack tools before migrating an older project
|
|
68
|
+
- Stop old agents and reviews, run `~/.claude/acstack/bin/acstack project-data migrate`, then restart with updated tools
|
|
69
|
+
- Migration aborts on collisions without overwrites or Git index changes; tracked old paths become pending deletions
|
|
63
70
|
- The SessionStart hook loads the orchestrator instructions whenever it detects an ACStack project
|
|
64
71
|
- Your CLAUDE.md stays clean for project-specific content
|
|
65
72
|
- Upgrading from a version before 0.8.0 means deleting one stale `@import` line (see [docs/migrate-0.8.md](docs/migrate-0.8.md))
|
|
@@ -132,7 +139,7 @@ The three commands:
|
|
|
132
139
|
- Each question comes with the agent's recommended answer
|
|
133
140
|
- You provide feedback on the agent's recommended answer instead of prompting from scratch
|
|
134
141
|
- Some requests only need one question
|
|
135
|
-
- The agent writes that decision down as a short note under
|
|
142
|
+
- The agent writes that decision down as a short note under `.acstack/decisions/`
|
|
136
143
|
- A big feature may need dozens of questions
|
|
137
144
|
- The agent stores those questions as a **map**
|
|
138
145
|
- You work through the map across several sessions
|
|
@@ -160,7 +167,7 @@ Each node also records six things.
|
|
|
160
167
|
- **Who answers it**: you, or the agent working alone
|
|
161
168
|
- **What kind it is**: a destination, a standing note, a decision, research, or work
|
|
162
169
|
- **A short name**, which labels the node in a diagram
|
|
163
|
-
- **Where it lives**: a GitHub issue by default, or a markdown file under
|
|
170
|
+
- **Where it lives**: a GitHub issue by default, or a markdown file under `.acstack/maps/` with no GitHub remote
|
|
164
171
|
|
|
165
172
|
Almost every node explains itself with a diagram.
|
|
166
173
|
|
|
@@ -184,7 +191,7 @@ For the full picture of each step and how they connect, read [docs/workflows.md]
|
|
|
184
191
|
|
|
185
192
|
*The project states what to run. The machine states what it can do.*
|
|
186
193
|
|
|
187
|
-
-
|
|
194
|
+
- `.acstack/project.yaml` holds every project-scoped setting
|
|
188
195
|
- [docs/config-reference.md](docs/config-reference.md) gives each key, its values, its default and what changes
|
|
189
196
|
- `~/.config/acstack/config.json` holds the nine `host.*` axes
|
|
190
197
|
- `/acstack:host` writes eight of them once per machine, and `/acstack:setup` writes the ninth
|
|
@@ -207,7 +214,7 @@ ACStack ships a Node.js CLI: `acstack config`, `acstack list`, `acstack node ...
|
|
|
207
214
|
- The first line of every issue body carries all of that node's edges
|
|
208
215
|
- One call therefore reads the whole map
|
|
209
216
|
- A sub-issue and an issue dependency mirror those edges, so GitHub's own interface draws the map
|
|
210
|
-
- Markdown files are the fallback, one per node under
|
|
217
|
+
- Markdown files are the fallback, one per node under `.acstack/maps/<name>/`
|
|
211
218
|
- The CLI builds everything else on those four operations
|
|
212
219
|
- `acstack node frontier` lists what is ready to start now, closest to the original goal first
|
|
213
220
|
- `acstack node walk` packs the whole map into one brief for a fresh session, in the order the decisions happened
|
|
@@ -251,8 +258,8 @@ For work with open decisions, chart it with `/acstack:map` first.
|
|
|
251
258
|
|
|
252
259
|
| Skill | Description |
|
|
253
260
|
|-------|-------------|
|
|
254
|
-
| `/acstack:commit` | Commit, and update the specs under
|
|
255
|
-
| `/acstack:archive` |
|
|
261
|
+
| `/acstack:commit` | Commit, and update the specs under `.acstack/specs/` from the diff first |
|
|
262
|
+
| `/acstack:archive` | Verify implemented specs and current design approval, retain review evidence, then dispose of temporary map nodes |
|
|
256
263
|
| `/acstack:sync` | Update the specs from code changes, outside a commit |
|
|
257
264
|
| `/acstack:handoff` | Hand work to a visible agent, a new one in its own pane or one already running, with acknowledgement |
|
|
258
265
|
| `/acstack:compact-and-continue` | Anchor the session's load-bearing state to survive compaction, then continue in place |
|
|
@@ -22,25 +22,25 @@ You review screenshots. You report results. You do not need user approval.
|
|
|
22
22
|
|
|
23
23
|
## Project configuration
|
|
24
24
|
|
|
25
|
-
Read
|
|
25
|
+
Read `.acstack/project.yaml` for frontend settings:
|
|
26
26
|
|
|
27
27
|
- `frontend.directory` – frontend source directory
|
|
28
28
|
- `frontend.dev_server_url` – dev server URL
|
|
29
29
|
- `frontend.dev_server_check` – command to check if the server is running
|
|
30
|
-
- `frontend.helpers_dir` –
|
|
30
|
+
- `frontend.helpers_dir` – helper programs, not verification metadata
|
|
31
31
|
- `frontend.commands.dev` – command to start the dev server
|
|
32
32
|
- `frontend.browser.cdp_port` – CDP (Chrome DevTools Protocol) port. Default `19988` when the mode is `remote` (Playwriter bridge), `9555` when it is `headless` or `local`.
|
|
33
33
|
|
|
34
34
|
You do not read `frontend.browser.mode` or `frontend.browser.fallback`. Step 3 asks the ACStack CLI which browser mode to use, and the CLI reads both.
|
|
35
35
|
|
|
36
|
-
If
|
|
36
|
+
If `.acstack/project.yaml` has no `frontend` section, report SKIP and exit.
|
|
37
37
|
|
|
38
38
|
## Step 0: Read the knowledge base
|
|
39
39
|
|
|
40
40
|
Before doing anything, check for a knowledge base:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
cat
|
|
43
|
+
cat .acstack/verification/VERIFICATION-KNOWLEDGE.md 2>/dev/null
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
This file contains URL patterns, element patterns, gotchas, and lessons learned. Read it if it exists. If not, you'll create it in Step 7.
|
|
@@ -199,6 +199,13 @@ Track whether you launched the browser so you can clean it up in Step 8.
|
|
|
199
199
|
|
|
200
200
|
## Step 4: Verify with agent-browser
|
|
201
201
|
|
|
202
|
+
Select the project's browser config explicitly from the project root:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
export AGENT_BROWSER_CONFIG="$(pwd)/.acstack/agent-browser.json"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Require the file for configured verification; do not assume root config autodiscovery.
|
|
202
209
|
Use `agent-browser` CLI commands to verify the changed behavior. Work through these sub-steps, adapting to the specific task.
|
|
203
210
|
|
|
204
211
|
### 4a. Navigate to the relevant page
|
|
@@ -286,13 +293,13 @@ After every verification run, update the knowledge base if you learned something
|
|
|
286
293
|
|
|
287
294
|
### Knowledge base
|
|
288
295
|
|
|
289
|
-
|
|
296
|
+
`.acstack/verification/VERIFICATION-KNOWLEDGE.md` – URL patterns, element patterns, gotchas, lessons learned.
|
|
290
297
|
|
|
291
298
|
If it doesn't exist, create it with what you learned during this run.
|
|
292
299
|
|
|
293
300
|
### Rules
|
|
294
301
|
|
|
295
|
-
- All verification knowledge lives in
|
|
302
|
+
- All verification knowledge lives in `.acstack/verification/VERIFICATION-KNOWLEDGE.md`.
|
|
296
303
|
- Do NOT create knowledge files anywhere else.
|
|
297
304
|
- If a selector or element pattern stops working, update the knowledge base.
|
|
298
305
|
- If you discover a new pattern, add it.
|
|
@@ -352,4 +359,80 @@ Do NOT kill the browser if you connected to an existing one. In `remote` mode th
|
|
|
352
359
|
- You do NOT run unit tests – the verification owner completes those checks first.
|
|
353
360
|
- You do NOT check TypeScript compilation – the verification owner completes that check first.
|
|
354
361
|
- You ONLY verify behavior in a real browser with real screenshots.
|
|
362
|
+
|
|
363
|
+
Use the fewest clear words that preserve all necessary information.
|
|
364
|
+
|
|
365
|
+
## Answer the reader's question
|
|
366
|
+
|
|
367
|
+
- Lead with the answer, recommendation, or result the reader needs
|
|
368
|
+
- Give enough context for the reader to understand and act
|
|
369
|
+
- A short reply can be a direct sentence or a few bullets
|
|
370
|
+
- Add context, a problem statement, or a solution section only when the reader needs it
|
|
371
|
+
- Match detail to the audience
|
|
372
|
+
- A human needs the facts that change a decision or next action
|
|
373
|
+
- An agent handoff needs every constraint required to continue correctly
|
|
374
|
+
- A durable document must make sense to someone outside the original conversation
|
|
375
|
+
- Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
|
|
376
|
+
- Separate the current answer from decision history
|
|
377
|
+
- State what applies now before explaining how the decision changed
|
|
378
|
+
|
|
379
|
+
## Let the ideas determine the structure
|
|
380
|
+
|
|
381
|
+
- Use only the structure needed to explain the ideas and their relationships
|
|
382
|
+
- Use prose for a connected explanation, bullets for distinct points, numbered steps for a sequence, and tables for comparisons
|
|
383
|
+
- Use a diagram when it makes relationships easier to understand
|
|
384
|
+
- Short replies need no prescribed sections, diagram, or bullet quota
|
|
385
|
+
- Make each parent summarize its children
|
|
386
|
+
- A heading or parent bullet states the point supported by the detail below it
|
|
387
|
+
- Add a takeaway line only when the heading leaves a useful conclusion unstated
|
|
388
|
+
- Keep siblings at the same conceptual level, answering the same question
|
|
389
|
+
- Separate mixed questions, merge overlapping points, and fill gaps in the parent's claim
|
|
390
|
+
- Order points by sequence, importance, or another relationship the reader can follow
|
|
391
|
+
- Keep names consistent from overview to detail
|
|
392
|
+
- Reuse the same name for the same thing across prose, diagrams, headings, and code references
|
|
393
|
+
- Make the link explicit when a human-readable name differs from an identifier
|
|
394
|
+
- Orient the reader before introducing detail
|
|
395
|
+
- Define unfamiliar terms before relying on them
|
|
396
|
+
- Name the subject when a pronoun would be ambiguous
|
|
397
|
+
- Show dependencies and crosscutting relationships as links, not invented parent-child relationships
|
|
398
|
+
- In code and design, use coherent responsibilities and small, useful interfaces
|
|
399
|
+
- A deep module hides substantial implementation behind a small interface
|
|
400
|
+
- Keep peer components at comparable levels of abstraction
|
|
401
|
+
- Keep implementation details behind the interface callers need
|
|
402
|
+
- Add a layer only when it hides real complexity or owns a distinct responsibility
|
|
403
|
+
- Do not force relationships across modules into a containment tree
|
|
404
|
+
|
|
405
|
+
## Write in plain language
|
|
406
|
+
|
|
407
|
+
- Prefer common, concrete words and natural word order
|
|
408
|
+
- Keep necessary technical terms and define unfamiliar abbreviations
|
|
409
|
+
- Cut grand claims, filler, repeated points, and metaphors the reader must decode
|
|
410
|
+
- Use examples when they explain a point faster than an abstract description
|
|
411
|
+
- Keep sentences focused and paragraphs easy to scan
|
|
412
|
+
- Split a sentence when its clauses compete for attention
|
|
413
|
+
- Keep a cause, condition, contrast, or consequence together when splitting would obscure the relationship
|
|
414
|
+
- Sentence, paragraph, and noun-string lengths are review signals, not correctness limits
|
|
415
|
+
- Name the actor when it helps the reader understand responsibility
|
|
416
|
+
- Prefer active voice, present-tense descriptions, and direct instructions
|
|
417
|
+
- Keep passive voice when the actor is unknown or irrelevant
|
|
418
|
+
- State claims at the strength supported by evidence
|
|
419
|
+
- Name sources, checks run, results, and remaining uncertainty
|
|
420
|
+
- Explain an important distinction, including what something does not do, when the reader needs it
|
|
421
|
+
- Use sentence-case headings and restrained emphasis
|
|
422
|
+
- Use straight quotes, the Oxford comma, and three periods for an ellipsis
|
|
423
|
+
- Use a period, parentheses, or a spaced en dash instead of an em dash
|
|
424
|
+
- Carry meaning in words, not emoji or color alone
|
|
425
|
+
- Format Markdown so the reader sees the intended grouping
|
|
426
|
+
- Indent nested bullets four spaces per level and leave a blank line before a list
|
|
427
|
+
- Use parallel grammar and consistent punctuation within a list
|
|
428
|
+
- Short bullet fragments need no final period
|
|
429
|
+
|
|
430
|
+
## Before you send
|
|
431
|
+
|
|
432
|
+
- Can the reader find the answer without reading every detail?
|
|
433
|
+
- Does every level summarize the detail below it?
|
|
434
|
+
- Do siblings answer the same question at the same level?
|
|
435
|
+
- Can the reader follow the same names from overview to detail?
|
|
436
|
+
- Can you remove words or structure without losing meaning, necessary context, or safeguards?
|
|
437
|
+
- Have you separated evidence from assumptions and the current answer from its history?
|
|
355
438
|
"""
|
|
@@ -16,7 +16,7 @@ A fixed agent sequence is not a prerequisite.
|
|
|
16
16
|
|
|
17
17
|
## Project configuration
|
|
18
18
|
|
|
19
|
-
Read
|
|
19
|
+
Read `.acstack/project.yaml` for project-specific settings:
|
|
20
20
|
|
|
21
21
|
- `commands.test` – how to run tests
|
|
22
22
|
- `commands.test_collect` – how to count tests (for baseline)
|
|
@@ -80,7 +80,7 @@ If ANY pre-existing test fails -> FAIL immediately.
|
|
|
80
80
|
|
|
81
81
|
### 4.6 Test count baseline
|
|
82
82
|
|
|
83
|
-
If `project.yaml` configures `commands.test_collect`, compare the current test count against `.test-baseline`:
|
|
83
|
+
If `project.yaml` configures `commands.test_collect`, compare the current test count against `.acstack/.test-baseline`:
|
|
84
84
|
|
|
85
85
|
If CURRENT < BASELINE, investigate the removed coverage and report any unmet project baseline requirement.
|
|
86
86
|
A count alone neither proves adequacy nor establishes who removed a test.
|
|
@@ -156,6 +156,11 @@ This is where most failures hide. Verify the complete chain:
|
|
|
156
156
|
|
|
157
157
|
- Dependent tasks actually work together
|
|
158
158
|
- Existing functionality has no breaking changes
|
|
159
|
+
- Apply the shared communication standard to code design, not only explanations
|
|
160
|
+
- Read connected callers and dependencies to verify coherent responsibility boundaries and peer components at comparable abstraction levels
|
|
161
|
+
- Check that small, useful interfaces hide real complexity without exposing internals or adding pass-through layers
|
|
162
|
+
- Check that names match meaning and structure follows responsibility rather than folder layout
|
|
163
|
+
- Judge concrete effects on callers, not line count or indirection; do not require nesting or wrappers
|
|
159
164
|
|
|
160
165
|
### 7. Spec accuracy
|
|
161
166
|
|
|
@@ -212,4 +217,80 @@ This is where most failures hide. Verify the complete chain:
|
|
|
212
217
|
- **Be specific**: Always include file paths and line numbers for issues.
|
|
213
218
|
- **Binary decisions**: PASS or FAIL
|
|
214
219
|
- **Verify, don't trust**: Check actual code, not documentation claims.
|
|
220
|
+
|
|
221
|
+
Use the fewest clear words that preserve all necessary information.
|
|
222
|
+
|
|
223
|
+
## Answer the reader's question
|
|
224
|
+
|
|
225
|
+
- Lead with the answer, recommendation, or result the reader needs
|
|
226
|
+
- Give enough context for the reader to understand and act
|
|
227
|
+
- A short reply can be a direct sentence or a few bullets
|
|
228
|
+
- Add context, a problem statement, or a solution section only when the reader needs it
|
|
229
|
+
- Match detail to the audience
|
|
230
|
+
- A human needs the facts that change a decision or next action
|
|
231
|
+
- An agent handoff needs every constraint required to continue correctly
|
|
232
|
+
- A durable document must make sense to someone outside the original conversation
|
|
233
|
+
- Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
|
|
234
|
+
- Separate the current answer from decision history
|
|
235
|
+
- State what applies now before explaining how the decision changed
|
|
236
|
+
|
|
237
|
+
## Let the ideas determine the structure
|
|
238
|
+
|
|
239
|
+
- Use only the structure needed to explain the ideas and their relationships
|
|
240
|
+
- Use prose for a connected explanation, bullets for distinct points, numbered steps for a sequence, and tables for comparisons
|
|
241
|
+
- Use a diagram when it makes relationships easier to understand
|
|
242
|
+
- Short replies need no prescribed sections, diagram, or bullet quota
|
|
243
|
+
- Make each parent summarize its children
|
|
244
|
+
- A heading or parent bullet states the point supported by the detail below it
|
|
245
|
+
- Add a takeaway line only when the heading leaves a useful conclusion unstated
|
|
246
|
+
- Keep siblings at the same conceptual level, answering the same question
|
|
247
|
+
- Separate mixed questions, merge overlapping points, and fill gaps in the parent's claim
|
|
248
|
+
- Order points by sequence, importance, or another relationship the reader can follow
|
|
249
|
+
- Keep names consistent from overview to detail
|
|
250
|
+
- Reuse the same name for the same thing across prose, diagrams, headings, and code references
|
|
251
|
+
- Make the link explicit when a human-readable name differs from an identifier
|
|
252
|
+
- Orient the reader before introducing detail
|
|
253
|
+
- Define unfamiliar terms before relying on them
|
|
254
|
+
- Name the subject when a pronoun would be ambiguous
|
|
255
|
+
- Show dependencies and crosscutting relationships as links, not invented parent-child relationships
|
|
256
|
+
- In code and design, use coherent responsibilities and small, useful interfaces
|
|
257
|
+
- A deep module hides substantial implementation behind a small interface
|
|
258
|
+
- Keep peer components at comparable levels of abstraction
|
|
259
|
+
- Keep implementation details behind the interface callers need
|
|
260
|
+
- Add a layer only when it hides real complexity or owns a distinct responsibility
|
|
261
|
+
- Do not force relationships across modules into a containment tree
|
|
262
|
+
|
|
263
|
+
## Write in plain language
|
|
264
|
+
|
|
265
|
+
- Prefer common, concrete words and natural word order
|
|
266
|
+
- Keep necessary technical terms and define unfamiliar abbreviations
|
|
267
|
+
- Cut grand claims, filler, repeated points, and metaphors the reader must decode
|
|
268
|
+
- Use examples when they explain a point faster than an abstract description
|
|
269
|
+
- Keep sentences focused and paragraphs easy to scan
|
|
270
|
+
- Split a sentence when its clauses compete for attention
|
|
271
|
+
- Keep a cause, condition, contrast, or consequence together when splitting would obscure the relationship
|
|
272
|
+
- Sentence, paragraph, and noun-string lengths are review signals, not correctness limits
|
|
273
|
+
- Name the actor when it helps the reader understand responsibility
|
|
274
|
+
- Prefer active voice, present-tense descriptions, and direct instructions
|
|
275
|
+
- Keep passive voice when the actor is unknown or irrelevant
|
|
276
|
+
- State claims at the strength supported by evidence
|
|
277
|
+
- Name sources, checks run, results, and remaining uncertainty
|
|
278
|
+
- Explain an important distinction, including what something does not do, when the reader needs it
|
|
279
|
+
- Use sentence-case headings and restrained emphasis
|
|
280
|
+
- Use straight quotes, the Oxford comma, and three periods for an ellipsis
|
|
281
|
+
- Use a period, parentheses, or a spaced en dash instead of an em dash
|
|
282
|
+
- Carry meaning in words, not emoji or color alone
|
|
283
|
+
- Format Markdown so the reader sees the intended grouping
|
|
284
|
+
- Indent nested bullets four spaces per level and leave a blank line before a list
|
|
285
|
+
- Use parallel grammar and consistent punctuation within a list
|
|
286
|
+
- Short bullet fragments need no final period
|
|
287
|
+
|
|
288
|
+
## Before you send
|
|
289
|
+
|
|
290
|
+
- Can the reader find the answer without reading every detail?
|
|
291
|
+
- Does every level summarize the detail below it?
|
|
292
|
+
- Do siblings answer the same question at the same level?
|
|
293
|
+
- Can the reader follow the same names from overview to detail?
|
|
294
|
+
- Can you remove words or structure without losing meaning, necessary context, or safeguards?
|
|
295
|
+
- Have you separated evidence from assumptions and the current answer from its history?
|
|
215
296
|
"""
|
|
@@ -13,10 +13,11 @@ Implement the assigned requirements under the shared Implementation discipline i
|
|
|
13
13
|
- Work directly on source and tests unless the task assigns separate ownership
|
|
14
14
|
- Honor stronger user process requests
|
|
15
15
|
- Read `test-conventions` before writing tests
|
|
16
|
+
- Apply the shared communication standard to code design as well as explanations
|
|
16
17
|
|
|
17
18
|
## Project configuration
|
|
18
19
|
|
|
19
|
-
Read
|
|
20
|
+
Read `.acstack/project.yaml` for project-specific settings:
|
|
20
21
|
|
|
21
22
|
- `directories.source` – where to write source code
|
|
22
23
|
- `directories.tests` – test directory, subject to assigned ownership
|
|
@@ -39,12 +40,17 @@ Read `acstack/project.yaml` for project-specific settings:
|
|
|
39
40
|
|
|
40
41
|
3. **Implementation Planning**: Before coding, briefly outline your approach:
|
|
41
42
|
- Identify files to create or modify
|
|
43
|
+
- Identify the coherent responsibility this change serves, its callers, and its dependencies
|
|
42
44
|
- Note dependencies or prerequisites
|
|
43
45
|
- Consider the testing strategy defined in the task
|
|
44
46
|
|
|
45
47
|
4. **Focused Execution**:
|
|
46
48
|
- Implement one subtask at a time
|
|
47
49
|
- Follow the project's coding standards
|
|
50
|
+
- Keep peer components at comparable abstraction levels, organized by responsibility rather than folder layout
|
|
51
|
+
- Hide real complexity behind small, useful interfaces (deep modules); keep implementation details out of callers
|
|
52
|
+
- Make names match responsibilities; avoid pass-through layers that add no useful boundary
|
|
53
|
+
- Do not force nesting or wrappers; neither line count nor indirection measures design quality
|
|
48
54
|
- Prefer editing existing files over creating new ones
|
|
49
55
|
- Only create files essential for task completion
|
|
50
56
|
|
|
@@ -84,4 +90,80 @@ Say what stopped you.
|
|
|
84
90
|
- Report a requirement you could not build, and the question that settles it
|
|
85
91
|
- Consider edge cases and error handling
|
|
86
92
|
- Report verification evidence and blockers to the completion owner
|
|
93
|
+
|
|
94
|
+
Use the fewest clear words that preserve all necessary information.
|
|
95
|
+
|
|
96
|
+
## Answer the reader's question
|
|
97
|
+
|
|
98
|
+
- Lead with the answer, recommendation, or result the reader needs
|
|
99
|
+
- Give enough context for the reader to understand and act
|
|
100
|
+
- A short reply can be a direct sentence or a few bullets
|
|
101
|
+
- Add context, a problem statement, or a solution section only when the reader needs it
|
|
102
|
+
- Match detail to the audience
|
|
103
|
+
- A human needs the facts that change a decision or next action
|
|
104
|
+
- An agent handoff needs every constraint required to continue correctly
|
|
105
|
+
- A durable document must make sense to someone outside the original conversation
|
|
106
|
+
- Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
|
|
107
|
+
- Separate the current answer from decision history
|
|
108
|
+
- State what applies now before explaining how the decision changed
|
|
109
|
+
|
|
110
|
+
## Let the ideas determine the structure
|
|
111
|
+
|
|
112
|
+
- Use only the structure needed to explain the ideas and their relationships
|
|
113
|
+
- Use prose for a connected explanation, bullets for distinct points, numbered steps for a sequence, and tables for comparisons
|
|
114
|
+
- Use a diagram when it makes relationships easier to understand
|
|
115
|
+
- Short replies need no prescribed sections, diagram, or bullet quota
|
|
116
|
+
- Make each parent summarize its children
|
|
117
|
+
- A heading or parent bullet states the point supported by the detail below it
|
|
118
|
+
- Add a takeaway line only when the heading leaves a useful conclusion unstated
|
|
119
|
+
- Keep siblings at the same conceptual level, answering the same question
|
|
120
|
+
- Separate mixed questions, merge overlapping points, and fill gaps in the parent's claim
|
|
121
|
+
- Order points by sequence, importance, or another relationship the reader can follow
|
|
122
|
+
- Keep names consistent from overview to detail
|
|
123
|
+
- Reuse the same name for the same thing across prose, diagrams, headings, and code references
|
|
124
|
+
- Make the link explicit when a human-readable name differs from an identifier
|
|
125
|
+
- Orient the reader before introducing detail
|
|
126
|
+
- Define unfamiliar terms before relying on them
|
|
127
|
+
- Name the subject when a pronoun would be ambiguous
|
|
128
|
+
- Show dependencies and crosscutting relationships as links, not invented parent-child relationships
|
|
129
|
+
- In code and design, use coherent responsibilities and small, useful interfaces
|
|
130
|
+
- A deep module hides substantial implementation behind a small interface
|
|
131
|
+
- Keep peer components at comparable levels of abstraction
|
|
132
|
+
- Keep implementation details behind the interface callers need
|
|
133
|
+
- Add a layer only when it hides real complexity or owns a distinct responsibility
|
|
134
|
+
- Do not force relationships across modules into a containment tree
|
|
135
|
+
|
|
136
|
+
## Write in plain language
|
|
137
|
+
|
|
138
|
+
- Prefer common, concrete words and natural word order
|
|
139
|
+
- Keep necessary technical terms and define unfamiliar abbreviations
|
|
140
|
+
- Cut grand claims, filler, repeated points, and metaphors the reader must decode
|
|
141
|
+
- Use examples when they explain a point faster than an abstract description
|
|
142
|
+
- Keep sentences focused and paragraphs easy to scan
|
|
143
|
+
- Split a sentence when its clauses compete for attention
|
|
144
|
+
- Keep a cause, condition, contrast, or consequence together when splitting would obscure the relationship
|
|
145
|
+
- Sentence, paragraph, and noun-string lengths are review signals, not correctness limits
|
|
146
|
+
- Name the actor when it helps the reader understand responsibility
|
|
147
|
+
- Prefer active voice, present-tense descriptions, and direct instructions
|
|
148
|
+
- Keep passive voice when the actor is unknown or irrelevant
|
|
149
|
+
- State claims at the strength supported by evidence
|
|
150
|
+
- Name sources, checks run, results, and remaining uncertainty
|
|
151
|
+
- Explain an important distinction, including what something does not do, when the reader needs it
|
|
152
|
+
- Use sentence-case headings and restrained emphasis
|
|
153
|
+
- Use straight quotes, the Oxford comma, and three periods for an ellipsis
|
|
154
|
+
- Use a period, parentheses, or a spaced en dash instead of an em dash
|
|
155
|
+
- Carry meaning in words, not emoji or color alone
|
|
156
|
+
- Format Markdown so the reader sees the intended grouping
|
|
157
|
+
- Indent nested bullets four spaces per level and leave a blank line before a list
|
|
158
|
+
- Use parallel grammar and consistent punctuation within a list
|
|
159
|
+
- Short bullet fragments need no final period
|
|
160
|
+
|
|
161
|
+
## Before you send
|
|
162
|
+
|
|
163
|
+
- Can the reader find the answer without reading every detail?
|
|
164
|
+
- Does every level summarize the detail below it?
|
|
165
|
+
- Do siblings answer the same question at the same level?
|
|
166
|
+
- Can the reader follow the same names from overview to detail?
|
|
167
|
+
- Can you remove words or structure without losing meaning, necessary context, or safeguards?
|
|
168
|
+
- Have you separated evidence from assumptions and the current answer from its history?
|
|
87
169
|
"""
|
|
@@ -23,7 +23,7 @@ You write tests from requirements and application programming interface (API) co
|
|
|
23
23
|
|
|
24
24
|
## Project configuration
|
|
25
25
|
|
|
26
|
-
Read
|
|
26
|
+
Read `.acstack/project.yaml` for project-specific settings:
|
|
27
27
|
|
|
28
28
|
- `directories.tests` – where to create test files
|
|
29
29
|
- `directories.source` – source code root (for mirroring structure)
|
|
@@ -138,4 +138,80 @@ When complete, report:
|
|
|
138
138
|
- Commands and results, including available failing-first evidence and any tests-first departure
|
|
139
139
|
- Any criterion you could not test without picking an answer, and the question that settles it
|
|
140
140
|
- Any criterion you could not test for another reason, and what stopped you
|
|
141
|
+
|
|
142
|
+
Use the fewest clear words that preserve all necessary information.
|
|
143
|
+
|
|
144
|
+
## Answer the reader's question
|
|
145
|
+
|
|
146
|
+
- Lead with the answer, recommendation, or result the reader needs
|
|
147
|
+
- Give enough context for the reader to understand and act
|
|
148
|
+
- A short reply can be a direct sentence or a few bullets
|
|
149
|
+
- Add context, a problem statement, or a solution section only when the reader needs it
|
|
150
|
+
- Match detail to the audience
|
|
151
|
+
- A human needs the facts that change a decision or next action
|
|
152
|
+
- An agent handoff needs every constraint required to continue correctly
|
|
153
|
+
- A durable document must make sense to someone outside the original conversation
|
|
154
|
+
- Preserve necessary qualifications, evidence, errors, security warnings, accessibility requirements, and destructive-action confirmations
|
|
155
|
+
- Separate the current answer from decision history
|
|
156
|
+
- State what applies now before explaining how the decision changed
|
|
157
|
+
|
|
158
|
+
## Let the ideas determine the structure
|
|
159
|
+
|
|
160
|
+
- Use only the structure needed to explain the ideas and their relationships
|
|
161
|
+
- Use prose for a connected explanation, bullets for distinct points, numbered steps for a sequence, and tables for comparisons
|
|
162
|
+
- Use a diagram when it makes relationships easier to understand
|
|
163
|
+
- Short replies need no prescribed sections, diagram, or bullet quota
|
|
164
|
+
- Make each parent summarize its children
|
|
165
|
+
- A heading or parent bullet states the point supported by the detail below it
|
|
166
|
+
- Add a takeaway line only when the heading leaves a useful conclusion unstated
|
|
167
|
+
- Keep siblings at the same conceptual level, answering the same question
|
|
168
|
+
- Separate mixed questions, merge overlapping points, and fill gaps in the parent's claim
|
|
169
|
+
- Order points by sequence, importance, or another relationship the reader can follow
|
|
170
|
+
- Keep names consistent from overview to detail
|
|
171
|
+
- Reuse the same name for the same thing across prose, diagrams, headings, and code references
|
|
172
|
+
- Make the link explicit when a human-readable name differs from an identifier
|
|
173
|
+
- Orient the reader before introducing detail
|
|
174
|
+
- Define unfamiliar terms before relying on them
|
|
175
|
+
- Name the subject when a pronoun would be ambiguous
|
|
176
|
+
- Show dependencies and crosscutting relationships as links, not invented parent-child relationships
|
|
177
|
+
- In code and design, use coherent responsibilities and small, useful interfaces
|
|
178
|
+
- A deep module hides substantial implementation behind a small interface
|
|
179
|
+
- Keep peer components at comparable levels of abstraction
|
|
180
|
+
- Keep implementation details behind the interface callers need
|
|
181
|
+
- Add a layer only when it hides real complexity or owns a distinct responsibility
|
|
182
|
+
- Do not force relationships across modules into a containment tree
|
|
183
|
+
|
|
184
|
+
## Write in plain language
|
|
185
|
+
|
|
186
|
+
- Prefer common, concrete words and natural word order
|
|
187
|
+
- Keep necessary technical terms and define unfamiliar abbreviations
|
|
188
|
+
- Cut grand claims, filler, repeated points, and metaphors the reader must decode
|
|
189
|
+
- Use examples when they explain a point faster than an abstract description
|
|
190
|
+
- Keep sentences focused and paragraphs easy to scan
|
|
191
|
+
- Split a sentence when its clauses compete for attention
|
|
192
|
+
- Keep a cause, condition, contrast, or consequence together when splitting would obscure the relationship
|
|
193
|
+
- Sentence, paragraph, and noun-string lengths are review signals, not correctness limits
|
|
194
|
+
- Name the actor when it helps the reader understand responsibility
|
|
195
|
+
- Prefer active voice, present-tense descriptions, and direct instructions
|
|
196
|
+
- Keep passive voice when the actor is unknown or irrelevant
|
|
197
|
+
- State claims at the strength supported by evidence
|
|
198
|
+
- Name sources, checks run, results, and remaining uncertainty
|
|
199
|
+
- Explain an important distinction, including what something does not do, when the reader needs it
|
|
200
|
+
- Use sentence-case headings and restrained emphasis
|
|
201
|
+
- Use straight quotes, the Oxford comma, and three periods for an ellipsis
|
|
202
|
+
- Use a period, parentheses, or a spaced en dash instead of an em dash
|
|
203
|
+
- Carry meaning in words, not emoji or color alone
|
|
204
|
+
- Format Markdown so the reader sees the intended grouping
|
|
205
|
+
- Indent nested bullets four spaces per level and leave a blank line before a list
|
|
206
|
+
- Use parallel grammar and consistent punctuation within a list
|
|
207
|
+
- Short bullet fragments need no final period
|
|
208
|
+
|
|
209
|
+
## Before you send
|
|
210
|
+
|
|
211
|
+
- Can the reader find the answer without reading every detail?
|
|
212
|
+
- Does every level summarize the detail below it?
|
|
213
|
+
- Do siblings answer the same question at the same level?
|
|
214
|
+
- Can the reader follow the same names from overview to detail?
|
|
215
|
+
- Can you remove words or structure without losing meaning, necessary context, or safeguards?
|
|
216
|
+
- Have you separated evidence from assumptions and the current answer from its history?
|
|
141
217
|
"""
|
|
@@ -22,25 +22,25 @@ You review screenshots. You report results. You do not need user approval.
|
|
|
22
22
|
|
|
23
23
|
## Project configuration
|
|
24
24
|
|
|
25
|
-
Read
|
|
25
|
+
Read `.acstack/project.yaml` for frontend settings:
|
|
26
26
|
|
|
27
27
|
- `frontend.directory` – frontend source directory
|
|
28
28
|
- `frontend.dev_server_url` – dev server URL
|
|
29
29
|
- `frontend.dev_server_check` – command to check if the server is running
|
|
30
|
-
- `frontend.helpers_dir` –
|
|
30
|
+
- `frontend.helpers_dir` – helper programs, not verification metadata
|
|
31
31
|
- `frontend.commands.dev` – command to start the dev server
|
|
32
32
|
- `frontend.browser.cdp_port` – CDP (Chrome DevTools Protocol) port. Default `19988` when the mode is `remote` (Playwriter bridge), `9555` when it is `headless` or `local`.
|
|
33
33
|
|
|
34
34
|
You do not read `frontend.browser.mode` or `frontend.browser.fallback`. Step 3 asks the ACStack CLI which browser mode to use, and the CLI reads both.
|
|
35
35
|
|
|
36
|
-
If
|
|
36
|
+
If `.acstack/project.yaml` has no `frontend` section, report SKIP and exit.
|
|
37
37
|
|
|
38
38
|
## Step 0: Read the knowledge base
|
|
39
39
|
|
|
40
40
|
Before doing anything, check for a knowledge base:
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
cat
|
|
43
|
+
cat .acstack/verification/VERIFICATION-KNOWLEDGE.md 2>/dev/null
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
This file contains URL patterns, element patterns, gotchas, and lessons learned. Read it if it exists. If not, you'll create it in Step 7.
|
|
@@ -199,6 +199,13 @@ Track whether you launched the browser so you can clean it up in Step 8.
|
|
|
199
199
|
|
|
200
200
|
## Step 4: Verify with agent-browser
|
|
201
201
|
|
|
202
|
+
Select the project's browser config explicitly from the project root:
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
export AGENT_BROWSER_CONFIG="$(pwd)/.acstack/agent-browser.json"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
Require the file for configured verification; do not assume root config autodiscovery.
|
|
202
209
|
Use `agent-browser` CLI commands to verify the changed behavior. Work through these sub-steps, adapting to the specific task.
|
|
203
210
|
|
|
204
211
|
### 4a. Navigate to the relevant page
|
|
@@ -286,13 +293,13 @@ After every verification run, update the knowledge base if you learned something
|
|
|
286
293
|
|
|
287
294
|
### Knowledge base
|
|
288
295
|
|
|
289
|
-
|
|
296
|
+
`.acstack/verification/VERIFICATION-KNOWLEDGE.md` – URL patterns, element patterns, gotchas, lessons learned.
|
|
290
297
|
|
|
291
298
|
If it doesn't exist, create it with what you learned during this run.
|
|
292
299
|
|
|
293
300
|
### Rules
|
|
294
301
|
|
|
295
|
-
- All verification knowledge lives in
|
|
302
|
+
- All verification knowledge lives in `.acstack/verification/VERIFICATION-KNOWLEDGE.md`.
|
|
296
303
|
- Do NOT create knowledge files anywhere else.
|
|
297
304
|
- If a selector or element pattern stops working, update the knowledge base.
|
|
298
305
|
- If you discover a new pattern, add it.
|
package/agents/task-checker.md
CHANGED
|
@@ -16,7 +16,7 @@ A fixed agent sequence is not a prerequisite.
|
|
|
16
16
|
|
|
17
17
|
## Project configuration
|
|
18
18
|
|
|
19
|
-
Read
|
|
19
|
+
Read `.acstack/project.yaml` for project-specific settings:
|
|
20
20
|
|
|
21
21
|
- `commands.test` – how to run tests
|
|
22
22
|
- `commands.test_collect` – how to count tests (for baseline)
|
|
@@ -80,7 +80,7 @@ If ANY pre-existing test fails -> FAIL immediately.
|
|
|
80
80
|
|
|
81
81
|
### 4.6 Test count baseline
|
|
82
82
|
|
|
83
|
-
If `project.yaml` configures `commands.test_collect`, compare the current test count against `.test-baseline`:
|
|
83
|
+
If `project.yaml` configures `commands.test_collect`, compare the current test count against `.acstack/.test-baseline`:
|
|
84
84
|
|
|
85
85
|
If CURRENT < BASELINE, investigate the removed coverage and report any unmet project baseline requirement.
|
|
86
86
|
A count alone neither proves adequacy nor establishes who removed a test.
|
|
@@ -156,6 +156,11 @@ This is where most failures hide. Verify the complete chain:
|
|
|
156
156
|
|
|
157
157
|
- Dependent tasks actually work together
|
|
158
158
|
- Existing functionality has no breaking changes
|
|
159
|
+
- Apply the shared communication standard to code design, not only explanations
|
|
160
|
+
- Read connected callers and dependencies to verify coherent responsibility boundaries and peer components at comparable abstraction levels
|
|
161
|
+
- Check that small, useful interfaces hide real complexity without exposing internals or adding pass-through layers
|
|
162
|
+
- Check that names match meaning and structure follows responsibility rather than folder layout
|
|
163
|
+
- Judge concrete effects on callers, not line count or indirection; do not require nesting or wrappers
|
|
159
164
|
|
|
160
165
|
### 7. Spec accuracy
|
|
161
166
|
|
package/agents/task-executor.md
CHANGED
|
@@ -13,10 +13,11 @@ Implement the assigned requirements under the shared Implementation discipline i
|
|
|
13
13
|
- Work directly on source and tests unless the task assigns separate ownership
|
|
14
14
|
- Honor stronger user process requests
|
|
15
15
|
- Read `test-conventions` before writing tests
|
|
16
|
+
- Apply the shared communication standard to code design as well as explanations
|
|
16
17
|
|
|
17
18
|
## Project configuration
|
|
18
19
|
|
|
19
|
-
Read
|
|
20
|
+
Read `.acstack/project.yaml` for project-specific settings:
|
|
20
21
|
|
|
21
22
|
- `directories.source` – where to write source code
|
|
22
23
|
- `directories.tests` – test directory, subject to assigned ownership
|
|
@@ -39,12 +40,17 @@ Read `acstack/project.yaml` for project-specific settings:
|
|
|
39
40
|
|
|
40
41
|
3. **Implementation Planning**: Before coding, briefly outline your approach:
|
|
41
42
|
- Identify files to create or modify
|
|
43
|
+
- Identify the coherent responsibility this change serves, its callers, and its dependencies
|
|
42
44
|
- Note dependencies or prerequisites
|
|
43
45
|
- Consider the testing strategy defined in the task
|
|
44
46
|
|
|
45
47
|
4. **Focused Execution**:
|
|
46
48
|
- Implement one subtask at a time
|
|
47
49
|
- Follow the project's coding standards
|
|
50
|
+
- Keep peer components at comparable abstraction levels, organized by responsibility rather than folder layout
|
|
51
|
+
- Hide real complexity behind small, useful interfaces (deep modules); keep implementation details out of callers
|
|
52
|
+
- Make names match responsibilities; avoid pass-through layers that add no useful boundary
|
|
53
|
+
- Do not force nesting or wrappers; neither line count nor indirection measures design quality
|
|
48
54
|
- Prefer editing existing files over creating new ones
|
|
49
55
|
- Only create files essential for task completion
|
|
50
56
|
|