agentscamp 0.3.0 → 0.5.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/README.md +3 -3
- package/content/commands/add-caching.md +79 -0
- package/content/commands/audit-accessibility.md +101 -0
- package/content/commands/clean-branches.md +113 -0
- package/content/commands/review-tests.md +98 -0
- package/content/commands/scaffold-github-action.md +94 -0
- package/content/commands/setup-precommit-hooks.md +72 -0
- package/content/commands/write-design-doc.md +78 -0
- package/content/manifest.json +425 -3
- package/content/skills/agent-trajectory-evaluator.md +59 -0
- package/content/skills/alerting-rules-tuner.md +49 -0
- package/content/skills/canary-release-planner.md +35 -0
- package/content/skills/cold-start-optimizer.md +83 -0
- package/content/skills/connection-pool-tuner.md +46 -0
- package/content/skills/contract-test-designer.md +70 -0
- package/content/skills/dependency-upgrade-planner.md +42 -0
- package/content/skills/devcontainer-designer.md +40 -0
- package/content/skills/distributed-tracing-instrumenter.md +42 -0
- package/content/skills/idempotency-designer.md +47 -0
- package/content/skills/memory-leak-hunter.md +35 -0
- package/content/skills/mutation-test-runner.md +64 -0
- package/content/skills/pagination-designer.md +51 -0
- package/content/skills/property-test-designer.md +63 -0
- package/content/skills/query-plan-analyzer.md +49 -0
- package/content/skills/runbook-writer.md +83 -0
- package/content/skills/security-headers-hardener.md +79 -0
- package/content/skills/semantic-cache-designer.md +40 -0
- package/content/skills/slo-definer.md +38 -0
- package/content/skills/strangler-fig-migrator.md +47 -0
- package/content/skills/structured-logging-designer.md +42 -0
- package/content/skills/threat-model-builder.md +46 -0
- package/content/skills/token-usage-profiler.md +39 -0
- package/package.json +1 -1
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Explore the codebase and write a decision-oriented design doc / RFC for a feature or system change."
|
|
3
|
+
argument-hint: "<feature or system to design>"
|
|
4
|
+
allowed-tools: "Read, Grep, Glob"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Scope
|
|
8
|
+
|
|
9
|
+
Treat `$ARGUMENTS` as the thing being designed — a feature, a subsystem, or a structural change (`move sessions from cookies to Redis`, `add multi-tenant billing`, `replace the polling sync with webhooks`). Restate it in one sentence to confirm scope before designing.
|
|
10
|
+
|
|
11
|
+
If `$ARGUMENTS` is empty, ask one focused question: *"What feature or system change should I design?"* Do not invent a problem to solve.
|
|
12
|
+
|
|
13
|
+
> [!WARNING]
|
|
14
|
+
> Read-only mode. Do not modify the repository, run migrations, install packages, or scaffold code. The written design doc is your only output. Designing without reading the current code produces a doc that won't survive contact with the repo — it proposes structure that already exists differently, or ignores constraints the code already enforces.
|
|
15
|
+
|
|
16
|
+
> [!NOTE]
|
|
17
|
+
> A design doc without honest alternatives and trade-offs is just a plan in disguise. If you cannot name an approach you rejected and *why*, you haven't done the design work yet — go back to Step 2.
|
|
18
|
+
|
|
19
|
+
## Step 1 — Frame the problem
|
|
20
|
+
|
|
21
|
+
Before any solution, pin down what you're solving and why now.
|
|
22
|
+
|
|
23
|
+
- What is broken, missing, or about to break? Why is this worth doing *now* rather than later?
|
|
24
|
+
- Who is affected — end users, a specific team, on-call, future maintainers? What do they feel today?
|
|
25
|
+
- What does "done" look like as observable behavior, and what is explicitly **not** in scope for this change?
|
|
26
|
+
|
|
27
|
+
## Step 2 — Ground the design in the real code
|
|
28
|
+
|
|
29
|
+
A design that ignores the existing structure invents a system that doesn't match the one you're changing. Use `Read`, `Grep`, and `Glob` (no shell) to map reality first:
|
|
30
|
+
|
|
31
|
+
- **Orient:** `Read` `README.md`, `package.json`, and `CLAUDE.md` for stack, conventions, and the patterns the team already commits to. `Glob` (e.g. `src/**/*.ts`, `**/migrations/**`, `**/*.config.*`) to see how the tree and its boundaries are laid out.
|
|
32
|
+
- **Find the blast radius:** `Grep` for terms from `$ARGUMENTS` to locate every module, route, model, and config the change touches. Trace the data flow and the layers it crosses — a design that only names the happy-path file underestimates the work.
|
|
33
|
+
- **Find the pattern to extend or break from:** `Read` the closest existing subsystem end to end. Decide deliberately whether your design *follows* that pattern (cite it) or *departs* from it (justify the departure in Trade-offs). Note real constraints you discover: a schema you must migrate, an interface other code depends on, a queue/cache/auth boundary you can't move freely.
|
|
34
|
+
|
|
35
|
+
## Step 3 — Write the design doc
|
|
36
|
+
|
|
37
|
+
Output the doc in this structure. Keep it skimmable and decision-oriented — cite real file paths and symbols from Step 2, not placeholders. Cut anything that isn't a decision or a constraint.
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
## Design — <one-line summary of the change>
|
|
41
|
+
|
|
42
|
+
### Context & problem
|
|
43
|
+
<Why this, why now, who's affected. The state today, with real references
|
|
44
|
+
(`path/to/module.ts`, the current flow). 2-4 tight paragraphs, no preamble.>
|
|
45
|
+
|
|
46
|
+
### Goals
|
|
47
|
+
- <observable outcome this change must achieve>
|
|
48
|
+
|
|
49
|
+
### Non-goals
|
|
50
|
+
- <explicitly out of scope — the boundaries that keep this shippable>
|
|
51
|
+
|
|
52
|
+
### Proposed design
|
|
53
|
+
<The approach. Data model / flow changes, key interfaces and signatures,
|
|
54
|
+
and exactly how it fits (or deliberately departs from) existing patterns
|
|
55
|
+
in `path/to/...`. Diagrams-in-prose are fine; be concrete about what code
|
|
56
|
+
lives where.>
|
|
57
|
+
|
|
58
|
+
### Alternatives considered
|
|
59
|
+
- **<Alternative A>** — <how it would work> — **Rejected because** <reason>.
|
|
60
|
+
- **<Alternative B>** — <how it would work> — **Rejected because** <reason>.
|
|
61
|
+
|
|
62
|
+
### Trade-offs & risks
|
|
63
|
+
- <what this design costs: complexity, perf, coupling, ops burden>
|
|
64
|
+
- <what could break, and the failure mode if it does>
|
|
65
|
+
|
|
66
|
+
### Rollout & migration
|
|
67
|
+
- <how it ships: flag, phased rollout, backfill/migration order, rollback path>
|
|
68
|
+
|
|
69
|
+
### Observability
|
|
70
|
+
- <metrics, logs, alerts that prove it works in prod and catch regressions>
|
|
71
|
+
|
|
72
|
+
### Open questions
|
|
73
|
+
- <each unresolved decision that needs an owner / a call>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Report
|
|
77
|
+
|
|
78
|
+
Deliver the design doc as your message — it is the whole deliverable. Verify it has real alternatives with reasons, honest trade-offs, and a rollout plan that names a rollback path; if any of those is hand-waved, it isn't done. End with the **Open questions** — the specific decisions that need a human call before implementation can start. No files were changed; this is a doc to align on, not the change itself.
|