@event4u/agent-config 2.10.0 → 2.12.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/.agent-src/commands/agents.md +1 -0
- package/.agent-src/commands/challenge-me.md +1 -0
- package/.agent-src/commands/chat-history.md +1 -0
- package/.agent-src/commands/context.md +1 -0
- package/.agent-src/commands/council.md +1 -0
- package/.agent-src/commands/feature.md +1 -0
- package/.agent-src/commands/fix.md +1 -0
- package/.agent-src/commands/grill-me.md +1 -0
- package/.agent-src/commands/judge.md +1 -0
- package/.agent-src/commands/memory.md +1 -0
- package/.agent-src/commands/module.md +1 -0
- package/.agent-src/commands/onboard.md +32 -4
- package/.agent-src/commands/optimize.md +1 -0
- package/.agent-src/commands/override.md +1 -0
- package/.agent-src/commands/roadmap.md +1 -0
- package/.agent-src/commands/tests.md +1 -0
- package/.agent-src/skills/canvas-design/SKILL.md +132 -0
- package/.agent-src/skills/canvas-design/evals/triggers.json +16 -0
- package/.agent-src/skills/doc-coauthoring/SKILL.md +129 -0
- package/.agent-src/skills/doc-coauthoring/evals/triggers.json +16 -0
- package/.agent-src/skills/nextjs-patterns/SKILL.md +203 -0
- package/.agent-src/skills/skill-writing/SKILL.md +101 -16
- package/.agent-src/skills/sql-writing/SKILL.md +1 -1
- package/.agent-src/skills/symfony-workflow/SKILL.md +173 -0
- package/.agent-src/templates/scripts/work_engine/hook_bootstrap.py +4 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/__init__.py +3 -0
- package/.agent-src/templates/scripts/work_engine/hooks/builtin/decision_gate.py +162 -0
- package/.agent-src/templates/scripts/work_engine/hooks/settings.py +24 -6
- package/.agent-src/templates/scripts/work_engine/scoring/decision_engine.py +351 -0
- package/.claude-plugin/marketplace.json +5 -1
- package/CHANGELOG.md +68 -0
- package/README.md +37 -8
- package/config/agent-settings.template.yml +66 -0
- package/docs/architecture.md +1 -1
- package/docs/contracts/STABILITY.md +16 -0
- package/docs/contracts/adr-chat-history-split.md +1 -0
- package/docs/contracts/adr-forecast-construction-shape.md +1 -0
- package/docs/contracts/adr-gtm-context-spine.md +1 -0
- package/docs/contracts/adr-level-6-productization.md +147 -0
- package/docs/contracts/adr-settings-sync-engine.md +1 -0
- package/docs/contracts/adr-wing4-context-spine.md +1 -0
- package/docs/contracts/agent-memory-contract.md +1 -0
- package/docs/contracts/agents-md-tech-stack.md +1 -0
- package/docs/contracts/audit-log-v1.md +1 -0
- package/docs/contracts/command-clusters.md +1 -0
- package/docs/contracts/command-surface-tiers.md +1 -0
- package/docs/contracts/context-paths.md +1 -0
- package/docs/contracts/cost-profile-defaults.md +105 -0
- package/docs/contracts/cross-wing-handoff.md +1 -0
- package/docs/contracts/decision-engine-gates.md +115 -0
- package/docs/contracts/decision-trace-v1.md +1 -0
- package/docs/contracts/file-ownership-matrix.md +1 -0
- package/docs/contracts/hook-architecture-v1.md +1 -0
- package/docs/contracts/implement-ticket-flow.md +1 -0
- package/docs/contracts/installed-tools-lockfile.md +1 -0
- package/docs/contracts/kernel-membership.md +1 -0
- package/docs/contracts/linear-ai-rules-inclusion.md +1 -0
- package/docs/contracts/linear-ai-three-layers.md +1 -0
- package/docs/contracts/linter-structural-model.md +1 -0
- package/docs/contracts/load-context-budget-model.md +1 -0
- package/docs/contracts/load-context-schema.md +1 -0
- package/docs/contracts/memory-visibility-v1.md +1 -0
- package/docs/contracts/one-off-script-lifecycle.md +1 -0
- package/docs/contracts/orchestration-dsl-v1.md +1 -0
- package/docs/contracts/package-self-orientation.md +1 -0
- package/docs/contracts/persona-schema.md +1 -0
- package/docs/contracts/release-trunk-sync.md +104 -0
- package/docs/contracts/roadmap-complexity-standard.md +1 -0
- package/docs/contracts/rule-classification.md +1 -0
- package/docs/contracts/rule-interactions.md +26 -0
- package/docs/contracts/rule-priority-hierarchy.md +1 -0
- package/docs/contracts/rule-router.md +1 -0
- package/docs/contracts/settings-sync-yaml-subset.md +1 -0
- package/docs/contracts/skill-domains.md +1 -0
- package/docs/contracts/tier-3-contrib-plugin.md +1 -0
- package/docs/contracts/ui-stack-extension.md +1 -0
- package/docs/contracts/ui-track-flow.md +1 -0
- package/docs/customization.md +1 -1
- package/docs/getting-started.md +3 -1
- package/docs/installation.md +8 -6
- package/package.json +1 -1
- package/scripts/ai_council/clients.py +17 -4
- package/scripts/ai_council/orchestrator.py +6 -2
- package/scripts/check_beta_review_markers.py +127 -0
- package/scripts/check_references.py +25 -0
- package/scripts/check_release_trunk_sync.py +152 -0
- package/scripts/council_cli.py +36 -5
- package/scripts/install.py +3 -3
- package/scripts/run_skill_evals.py +185 -0
- package/scripts/schemas/command.schema.json +5 -0
- package/scripts/schemas/skill.schema.json +4 -0
- package/scripts/skill_linter.py +82 -3
- package/scripts/smoke_quickstart.py +134 -0
- package/scripts/validate_decision_engine.py +124 -0
|
@@ -3,6 +3,7 @@ name: agents
|
|
|
3
3
|
tier: 1
|
|
4
4
|
description: Agent-layer orchestrator — routes to init, optimize, audit. Covers AGENTS.md and its multi-tool stubs (CLAUDE.md, GEMINI.md, copilot-instructions.md, .cursorrules).
|
|
5
5
|
cluster: agents
|
|
6
|
+
type: orchestrator
|
|
6
7
|
disable-model-invocation: true
|
|
7
8
|
suggestion:
|
|
8
9
|
eligible: true
|
|
@@ -3,6 +3,7 @@ name: grill-me
|
|
|
3
3
|
tier: 2
|
|
4
4
|
description: Alias for /challenge-me — interactive grill-style interview that sharpens a fuzzy plan/idea into a copyable Markdown pitch
|
|
5
5
|
cluster: challenge-me
|
|
6
|
+
type: orchestrator
|
|
6
7
|
disable-model-invocation: true
|
|
7
8
|
suggestion:
|
|
8
9
|
eligible: true
|
|
@@ -153,11 +153,12 @@ rtk post-install steps (telemetry off, init --global) per
|
|
|
153
153
|
### 7. Confirm `cost_profile` and learning loop
|
|
154
154
|
|
|
155
155
|
Read current `cost_profile` and `pipelines.skill_improvement` values.
|
|
156
|
-
Present plainly (sensible defaults from template — `
|
|
157
|
-
`skill_improvement: true
|
|
156
|
+
Present plainly (sensible defaults from template — `balanced` +
|
|
157
|
+
`skill_improvement: true`; rationale in
|
|
158
|
+
[`docs/contracts/cost-profile-defaults.md`](../docs/contracts/cost-profile-defaults.md)):
|
|
158
159
|
|
|
159
160
|
```
|
|
160
|
-
> Cost profile: {current} (
|
|
161
|
+
> Cost profile: {current} (balanced by default — kernel + tier-1 auto-rules)
|
|
161
162
|
> Learning loop (skill_improvement): {current} (true by default)
|
|
162
163
|
>
|
|
163
164
|
> 1. Keep defaults — recommended
|
|
@@ -236,7 +237,34 @@ directly — the agent follows the merge rules in `layered-settings` when
|
|
|
236
237
|
you ask it to change a value.
|
|
237
238
|
```
|
|
238
239
|
|
|
239
|
-
### 11.
|
|
240
|
+
### 11. Quickstart pointer — next command after onboarding
|
|
241
|
+
|
|
242
|
+
Print next-action block so developer does **not** have to re-find README
|
|
243
|
+
to start work. One screen, no question, no prompt:
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
🚀 Next step — your first real task
|
|
247
|
+
|
|
248
|
+
Try one of these from the same chat:
|
|
249
|
+
|
|
250
|
+
/work "your first real task"
|
|
251
|
+
Free-form prompt — agent refines, plans, implements, tests,
|
|
252
|
+
verifies, reports. A decision_result entry lands in agents/state/
|
|
253
|
+
confirming the work-engine ran end-to-end.
|
|
254
|
+
|
|
255
|
+
/implement-ticket PROJ-123
|
|
256
|
+
Ticket-driven flow — pulls Jira/Linear context, runs same
|
|
257
|
+
refine → memory → analyze → plan → implement → test → verify
|
|
258
|
+
→ report sequence, halts on ambiguity.
|
|
259
|
+
|
|
260
|
+
Both honour decision_engine gates in .agent-settings.yml
|
|
261
|
+
(see docs/contracts/decision-engine-gates.md for schema).
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Skip block in cloud surfaces (cloud agent's invocation surface is
|
|
265
|
+
already chat window).
|
|
266
|
+
|
|
267
|
+
### 12. Maintainer-only feature pointer
|
|
240
268
|
|
|
241
269
|
Print one-screen hint after summary — no question, no prompt, just pointer
|
|
242
270
|
for maintainers who want to opt into artefact-engagement telemetry layer.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: canvas-design
|
|
3
|
+
description: "Use when creating static visual art — posters, marketing visuals, brand assets, PDF/PNG design pieces — even if the user just says 'design a poster' or 'mach uns ein Visual'."
|
|
4
|
+
source: package
|
|
5
|
+
domain: product
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# canvas-design
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
Use when:
|
|
13
|
+
|
|
14
|
+
* User asks for a poster, marketing visual, brand asset, social-media graphic, cover art
|
|
15
|
+
* Output is a static `.pdf` or `.png` design piece (not a UI mockup, not a wireframe)
|
|
16
|
+
* The deliverable is the visual artifact itself
|
|
17
|
+
|
|
18
|
+
Do NOT use when:
|
|
19
|
+
|
|
20
|
+
* Designing a UI component or app screen → `fe-design`, `ui-component-architect`, `react-shadcn-ui`, `blade-ui`, `flux`
|
|
21
|
+
* Tailwind / shadcn / Flux component styling → `tailwind-engineer`
|
|
22
|
+
* Brand voice / tone definition → `voice-and-tone-design`
|
|
23
|
+
* Release announcement copy → `release-comms`
|
|
24
|
+
|
|
25
|
+
## Goal
|
|
26
|
+
|
|
27
|
+
Produce one finished visual artifact (`.pdf` or `.png`) backed by an original design philosophy. Both files ship together.
|
|
28
|
+
|
|
29
|
+
The work emphasizes: visual expression over text · original direction (no artist mimicry) · composition that looks deliberated, not generated.
|
|
30
|
+
|
|
31
|
+
## Preconditions
|
|
32
|
+
|
|
33
|
+
* Brief from user (theme, intent, occasion, target medium, size constraint)
|
|
34
|
+
* Output directory: `agents/design-assets/{slug}/` — create if missing
|
|
35
|
+
* Image-generation tooling available (Python with Pillow / matplotlib / cairo, SVG → PNG conversion, or whatever the environment ships)
|
|
36
|
+
|
|
37
|
+
## Procedure
|
|
38
|
+
|
|
39
|
+
### 1. Brief intake
|
|
40
|
+
|
|
41
|
+
One numbered-options block surfaces: theme / occasion · target medium + dimensions (web 1200×630? print A3? square 1080×1080?) · color & mood direction · hard constraints (logo required? color to avoid?) · single page or series.
|
|
42
|
+
|
|
43
|
+
If the brief says "in the style of [living artist]", flag the copyright risk and propose an original direction.
|
|
44
|
+
|
|
45
|
+
### 2. Design philosophy
|
|
46
|
+
|
|
47
|
+
Author `agents/design-assets/{slug}/philosophy.md` — 4–6 paragraphs naming:
|
|
48
|
+
|
|
49
|
+
* **Movement name** — 1–2 words ("Chromatic Silence", "Brutalist Joy", "Analog Meditation")
|
|
50
|
+
* **Visual language** — how the philosophy manifests through space, form, color, scale, composition, rhythm
|
|
51
|
+
* **Text role** — sparse, accent only; never paragraphs
|
|
52
|
+
* **Craftsmanship anchor** — visible deliberation, not template polish
|
|
53
|
+
|
|
54
|
+
Stay aesthetically specific but leave interpretive room for the canvas execution.
|
|
55
|
+
|
|
56
|
+
### 3. Subtle conceptual thread
|
|
57
|
+
|
|
58
|
+
Identify a single niche reference embedded in the work — not announced, woven into form / color / composition. A jazz musician quoting another song: those who know catch it, others enjoy the music.
|
|
59
|
+
|
|
60
|
+
Document it in `philosophy.md` under `## Subtle reference`.
|
|
61
|
+
|
|
62
|
+
### 4. Canvas execution
|
|
63
|
+
|
|
64
|
+
Produce `agents/design-assets/{slug}/{slug}.{pdf|png}`:
|
|
65
|
+
|
|
66
|
+
1. Pick the execution tool (Pillow, matplotlib, SVG, or framework-native)
|
|
67
|
+
2. Limited palette — 2–5 colors, intentional and cohesive
|
|
68
|
+
3. Geometric or organic forms per philosophy
|
|
69
|
+
4. Text — sparse, design-forward, integrated as visual element; never overlapping, never falling off canvas
|
|
70
|
+
5. Margins — every element contained, breathing room
|
|
71
|
+
6. Repeating patterns, layered elements, systematic markers as the philosophy permits
|
|
72
|
+
|
|
73
|
+
### 5. Refinement pass
|
|
74
|
+
|
|
75
|
+
After the first render, **do not add more graphics**. Refine what exists:
|
|
76
|
+
|
|
77
|
+
* Tighten composition cohesion
|
|
78
|
+
* Adjust spacing, alignment, color balance
|
|
79
|
+
* Replace fonts if they fight the philosophy
|
|
80
|
+
* Remove any element that doesn't earn its place
|
|
81
|
+
|
|
82
|
+
Render the refined version. Overwrite the artifact.
|
|
83
|
+
|
|
84
|
+
### 6. Multi-page (optional)
|
|
85
|
+
|
|
86
|
+
If the user requests a series, treat each page as a story beat — distinct but philosophically continuous. Bundle as a multi-page PDF or numbered PNGs (`{slug}-01.png`, `{slug}-02.png`, …).
|
|
87
|
+
|
|
88
|
+
### 7. Validation
|
|
89
|
+
|
|
90
|
+
* `philosophy.md` exists with movement name + 4–6 paragraphs + subtle-reference section
|
|
91
|
+
* Artifact file exists at the expected path
|
|
92
|
+
* Open and verify: nothing falls off canvas, no overlapping text, palette ≤ 5 distinct colors, every element has margin
|
|
93
|
+
* Original work — no traceable artist-style copy
|
|
94
|
+
|
|
95
|
+
## Output format
|
|
96
|
+
|
|
97
|
+
1. `agents/design-assets/{slug}/philosophy.md`
|
|
98
|
+
2. `agents/design-assets/{slug}/{slug}.{pdf|png}` (or numbered series for multi-page)
|
|
99
|
+
3. One concluding line stating both file paths
|
|
100
|
+
|
|
101
|
+
## Gotcha
|
|
102
|
+
|
|
103
|
+
* **No artist mimicry** — copying a living artist's signature style is copyright risk and breaks the original-work mandate. Propose an original direction.
|
|
104
|
+
* **Text discipline** — most pieces fail because text creeps in as paragraphs. Words are visual accents, not explanation.
|
|
105
|
+
* **One canvas** — single page unless multi-page is explicitly requested.
|
|
106
|
+
* **Font availability** — the environment may not ship your target font. Pick a fallback before render time, or download into the working dir first.
|
|
107
|
+
* **Output location** — always `agents/design-assets/{slug}/`. Never write binary artifacts to the repo root or to source-of-truth dirs.
|
|
108
|
+
* **Refinement loop is real** — first render is the draft, not the deliverable.
|
|
109
|
+
|
|
110
|
+
## Frugality Standards
|
|
111
|
+
|
|
112
|
+
Apply the [Frugality Charter](../../contexts/contracts/frugality-charter.md).
|
|
113
|
+
|
|
114
|
+
* Per the default-terse rule, `philosophy.md` opens with the movement name — no "In this document I will describe …" frame.
|
|
115
|
+
* Per the cheap-question check, numbered-options blocks only at brief intake (where consequences differ).
|
|
116
|
+
* Per the post-action summary suppression, ship the files; skip an "## Artist statement" wrapper.
|
|
117
|
+
|
|
118
|
+
**Pre-save self-check:**
|
|
119
|
+
|
|
120
|
+
1. Does `philosophy.md` carry filler superlatives ("absolute pinnacle", "transcendent")?
|
|
121
|
+
2. Does the canvas include explanatory text instead of visual-accent text?
|
|
122
|
+
3. Are more than 5 distinct colors present without justification in the philosophy?
|
|
123
|
+
4. Is the subtle reference announced explicitly in the visual, breaking the "those who know" principle?
|
|
124
|
+
|
|
125
|
+
## Do NOT
|
|
126
|
+
|
|
127
|
+
* Copy a living artist's signature visual style
|
|
128
|
+
* Generate cartoony / amateur / template-store output
|
|
129
|
+
* Add paragraphs of text — visuals communicate, words accent
|
|
130
|
+
* Skip the philosophy file — the artifact without it is just an image
|
|
131
|
+
* Skip the refinement pass
|
|
132
|
+
* Write binary artifacts to the repo root or to source-of-truth dirs
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "canvas-design",
|
|
3
|
+
"description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger asks for static visual art (poster / cover / marketing visual). Should-not-trigger near-misses share design vocabulary but route elsewhere (fe-design, tailwind-engineer, voice-and-tone-design, release-comms).",
|
|
4
|
+
"queries": [
|
|
5
|
+
{"q": "Need a launch poster for next week's release announcement — A3 print, minimal style", "trigger": true},
|
|
6
|
+
{"q": "Design us a social-media visual for the v3.0 release, 1080x1080 for IG", "trigger": true},
|
|
7
|
+
{"q": "Mach mir bitte ein Cover-Bild für den Talk nächste Woche, 1200x630 fürs Web", "trigger": true},
|
|
8
|
+
{"q": "We want a single-page PDF brand visual for the conference booth handout", "trigger": true},
|
|
9
|
+
{"q": "Build a minimalist poster for the team-offsite invitation, square format", "trigger": true},
|
|
10
|
+
{"q": "Design a new component library for our app — buttons, inputs, cards", "trigger": false},
|
|
11
|
+
{"q": "What color palette should we standardize on in tailwind.config.js?", "trigger": false},
|
|
12
|
+
{"q": "Refactor the brand voice doc — make it less corporate and more direct", "trigger": false},
|
|
13
|
+
{"q": "Draft the release announcement blog post for the v3.0 launch", "trigger": false},
|
|
14
|
+
{"q": "Help me wireframe the new onboarding flow — three screens, mobile-first", "trigger": false}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-coauthoring
|
|
3
|
+
description: "Use when co-authoring a PRD, design doc, RFC, decision doc, or technical spec — 3-stage flow (context → section-by-section → reader-test) — even if the user just says 'help me write this spec'."
|
|
4
|
+
source: package
|
|
5
|
+
domain: process
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# doc-coauthoring
|
|
9
|
+
|
|
10
|
+
## When to use
|
|
11
|
+
|
|
12
|
+
Use this skill when:
|
|
13
|
+
|
|
14
|
+
* User starts a substantial writing task — PRD, RFC, design doc, decision doc, technical spec, proposal
|
|
15
|
+
* User says "help me write this up", "draft a proposal", "we need a doc for X"
|
|
16
|
+
* The output is a structured prose document the user will own and ship
|
|
17
|
+
|
|
18
|
+
Do NOT use when:
|
|
19
|
+
|
|
20
|
+
* Authoring agent docs / module docs / AGENTS.md → `agent-docs-writing`
|
|
21
|
+
* Writing a README → `readme-writing` / `readme-writing-package`
|
|
22
|
+
* Writing an ADR (process is fixed, no co-authoring loop) → `adr-create`
|
|
23
|
+
* Code documentation, inline comments, docstrings
|
|
24
|
+
|
|
25
|
+
## Goal
|
|
26
|
+
|
|
27
|
+
Move from a fuzzy ask to a complete document the user owns, by:
|
|
28
|
+
|
|
29
|
+
1. Closing the context gap before drafting
|
|
30
|
+
2. Building each section through brainstorm → curate → draft → refine
|
|
31
|
+
3. Testing the draft with a fresh-context reader before declaring done
|
|
32
|
+
|
|
33
|
+
## Preconditions
|
|
34
|
+
|
|
35
|
+
* User explicitly wants a document (not a quick answer)
|
|
36
|
+
* `save-file` and `str-replace-editor` available
|
|
37
|
+
* Target path and filename agreed up front
|
|
38
|
+
|
|
39
|
+
## Procedure
|
|
40
|
+
|
|
41
|
+
### 0. Inspect existing material
|
|
42
|
+
|
|
43
|
+
Before any drafting, **inspect** the landscape: search `agents/` and
|
|
44
|
+
the repo for related prior docs (`grep -ril "{topic}" agents/ docs/`),
|
|
45
|
+
check the user's named ticket / thread for context, and confirm no
|
|
46
|
+
in-flight document already covers the ask. If a near-duplicate exists,
|
|
47
|
+
surface it and ask whether to extend or supersede.
|
|
48
|
+
|
|
49
|
+
### 1. Context gathering
|
|
50
|
+
|
|
51
|
+
Close the gap between what the user knows and what you know.
|
|
52
|
+
|
|
53
|
+
1. **Meta-questions** — one numbered-options block (per `user-interaction`): doc type? primary audience? desired impact? template/format constraint? existing related docs / threads / tickets?
|
|
54
|
+
2. **Info dump** — invite stream-of-consciousness context: plain text, paths to existing docs, ticket links, thread paste.
|
|
55
|
+
3. **Clarifying questions** — 5–10 numbered questions to fill remaining gaps. User answers shorthand (`1: yes`, `2: see #channel`, `3: backwards-compat reason`).
|
|
56
|
+
4. **Exit gate** — ask "ready to draft, or more context?" — wait for confirmation. Do not start scaffolding the file until the user confirms.
|
|
57
|
+
|
|
58
|
+
### 2. Refinement & structure
|
|
59
|
+
|
|
60
|
+
Build the document section by section.
|
|
61
|
+
|
|
62
|
+
1. **Agree on structure** — propose 3–5 sections based on doc type and context. Ask user to confirm or adjust.
|
|
63
|
+
2. **Scaffold the file** — use `save-file` to create the doc with placeholder text per section (`[To be written]`). One commit-equivalent action; review with the user before populating.
|
|
64
|
+
3. **Pick the starting section** — suggest the one with the most unknowns (usually the core decision / proposal). Never start with the summary.
|
|
65
|
+
4. **Per-section loop** — repeat for each section:
|
|
66
|
+
- **Clarifying questions** — 5–10 numbered questions about what this section covers
|
|
67
|
+
- **Brainstorm** — 5–20 numbered options of what could go in. Offer "more options?" at the end.
|
|
68
|
+
- **Curation** — user picks: `keep 1,4,7,9` / `remove 3 (dupes 1)` / `combine 11+12`. Parse freeform feedback if the user gives `"looks good but ..."`.
|
|
69
|
+
- **Gap check** — "anything missing for this section?"
|
|
70
|
+
- **Draft** — `str-replace-editor` to replace the placeholder. Never reprint the whole doc.
|
|
71
|
+
- **Iterate** — user feedback in, surgical edits out. After 3 iterations with no substantial change, ask "anything to remove without losing value?"
|
|
72
|
+
- **Section exit gate** — "section done — move to next?"
|
|
73
|
+
5. **Whole-doc review at 80% complete** — re-read the full file. Surface contradictions, redundancy, generic filler. Apply final edits.
|
|
74
|
+
|
|
75
|
+
### 3. Reader test
|
|
76
|
+
|
|
77
|
+
Verify the doc works for someone without your context.
|
|
78
|
+
|
|
79
|
+
1. **Predict reader questions** — generate 5–10 questions a real reader would ask after reading.
|
|
80
|
+
2. **Run the test** — pick one:
|
|
81
|
+
- **`ai-council` available** → invoke with the doc + predicted questions; treat each council member as a fresh reader.
|
|
82
|
+
- **Otherwise** → instruct the user to open a fresh Claude / ChatGPT, paste the doc, ask the questions one by one. Capture answers.
|
|
83
|
+
3. **Additional fresh-reader checks** (always): "what is ambiguous?" · "what context does this doc assume readers have?" · "internal contradictions?"
|
|
84
|
+
4. **Report** — surface where the fresh reader got it wrong, where assumptions break.
|
|
85
|
+
5. **Loop back to Stage 2** for problematic sections until the fresh reader answers cleanly and surfaces no new gaps.
|
|
86
|
+
|
|
87
|
+
### 4. Handover
|
|
88
|
+
|
|
89
|
+
1. Final read-through by the user (they own the doc).
|
|
90
|
+
2. Verify facts, links, technical details.
|
|
91
|
+
3. Confirm intended impact achieved.
|
|
92
|
+
4. Surface the final file path. Done.
|
|
93
|
+
|
|
94
|
+
## Output format
|
|
95
|
+
|
|
96
|
+
1. Target document file at the agreed path (e.g. `agents/proposals/{slug}.md`)
|
|
97
|
+
2. One concluding line stating "Doc complete at {path} — ready for owner review"
|
|
98
|
+
|
|
99
|
+
## Gotcha
|
|
100
|
+
|
|
101
|
+
* **One question per turn** (Iron Law from `ask-when-uncertain`) — never bundle clarifying + brainstorm + curate prompts in one message.
|
|
102
|
+
* **Never reprint the full doc** during iteration — always use `str-replace-editor`. Reprinting wastes tokens and creates merge drift.
|
|
103
|
+
* **Reader test is not optional** — without it, you ship the version that makes sense to you, not to readers. Skip only on explicit user override.
|
|
104
|
+
* **Sub-agent absence** — `ai-council` may not be configured. Have the manual fresh-Claude fallback ready (Stage 3 step 2).
|
|
105
|
+
* **Image alt-text** — if the doc embeds images, add alt-text inline; without it, fresh-reader tools can't see them.
|
|
106
|
+
* **Language discipline** — keep the doc body in English (per `language-and-tone`). For verbatim German user phrases or interview quotes, use `DE: … · EN: …` anchor blocks.
|
|
107
|
+
|
|
108
|
+
## Frugality Standards
|
|
109
|
+
|
|
110
|
+
Apply the [Frugality Charter](../../contexts/contracts/frugality-charter.md).
|
|
111
|
+
|
|
112
|
+
* Per the default-terse rule, each section opens with content, not "In this section …".
|
|
113
|
+
* Per the cheap-question check, numbered-options blocks only when consequences differ — skip "yes / no, continue?" type prompts.
|
|
114
|
+
* Per the post-action summary suppression, the final output is the doc — no wrapping "Summary of what we did" block.
|
|
115
|
+
|
|
116
|
+
**Pre-save self-check:**
|
|
117
|
+
|
|
118
|
+
1. Does any section open with a narrative preamble instead of content?
|
|
119
|
+
2. Are clarifying questions bundled when one-at-a-time would surface user priorities better?
|
|
120
|
+
3. Is the reader-test stage skipped or merged into a "we're done" claim?
|
|
121
|
+
4. Is non-English prose present outside `DE: / EN:` anchor blocks?
|
|
122
|
+
|
|
123
|
+
## Do NOT
|
|
124
|
+
|
|
125
|
+
* Skip Stage 1 — straight-to-drafting produces docs that miss audience and impact
|
|
126
|
+
* Bundle 5+ questions into one numbered block — breaks one-question-per-turn
|
|
127
|
+
* Reprint the whole doc on every iteration
|
|
128
|
+
* Declare "done" without the Stage 3 reader test
|
|
129
|
+
* Generate doc content from scratch when the user has existing context — gap-closing is the whole point
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill": "doc-coauthoring",
|
|
3
|
+
"description": "5 should-trigger + 5 should-not-trigger queries. Should-trigger phrasings reflect real co-authoring asks for PRDs / specs / decision docs. Should-not-trigger near-misses share doc-writing vocabulary but route elsewhere (agent-docs-writing, readme-writing, adr-create, code docs, translations).",
|
|
4
|
+
"queries": [
|
|
5
|
+
{"q": "Help me draft a PRD for the new analytics feature — I have a lot of context but no structure yet", "trigger": true},
|
|
6
|
+
{"q": "We need a design doc for the OAuth migration before next week's review. Can you walk me through writing it?", "trigger": true},
|
|
7
|
+
{"q": "I have to write up a decision doc about dropping Redis. Where do we start?", "trigger": true},
|
|
8
|
+
{"q": "Need an RFC for the data-export rate-limit change before tomorrow's architecture sync", "trigger": true},
|
|
9
|
+
{"q": "Lass uns einen Spec für das neue Webhook-Verfahren zusammenstellen — du fragst, ich antworte", "trigger": true},
|
|
10
|
+
{"q": "Add a section to AGENTS.md about the new env vars we just introduced", "trigger": false},
|
|
11
|
+
{"q": "Update the README with the new install instructions for the docker variant", "trigger": false},
|
|
12
|
+
{"q": "Write an ADR for the queue-broker switch from Redis to SQS", "trigger": false},
|
|
13
|
+
{"q": "Add docstrings to all public methods on the OrderService class", "trigger": false},
|
|
14
|
+
{"q": "Translate the lang/de strings to French for the new locale rollout", "trigger": false}
|
|
15
|
+
]
|
|
16
|
+
}
|