swe-workflow-skills 0.6.2 → 0.6.3
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/VERSION +1 -1
- package/package.json +1 -1
- package/skills/architecture-design/SKILL.md +32 -1
- package/skills/configuration-strategy/SKILL.md +27 -0
- package/skills/data-modeling/SKILL.md +31 -1
- package/skills/frontend-architecture/SKILL.md +29 -0
- package/skills/plan-execution/SKILL.md +13 -0
- package/skills/writing-skills/SKILL.md +4 -1
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.6.
|
|
1
|
+
0.6.3
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "swe-workflow-skills",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "A curated library of Claude Code Agent Skills covering the full software lifecycle, with orchestrator-routed activation that scales past the skill-listing budget.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,36 @@ Help the user make well-reasoned architectural decisions and document them in Ar
|
|
|
10
10
|
|
|
11
11
|
## Workflow
|
|
12
12
|
|
|
13
|
+
### Step 0: Inventory What Already Exists
|
|
14
|
+
|
|
15
|
+
If a system is already running, establish what it already provides before
|
|
16
|
+
proposing a new service, module, boundary, or pattern. Map the current state
|
|
17
|
+
**directly** from the codebase — don't infer it from the requirements, the docs,
|
|
18
|
+
or memory. Docs describe the system someone intended; the code is the one you
|
|
19
|
+
have.
|
|
20
|
+
|
|
21
|
+
Cover both:
|
|
22
|
+
|
|
23
|
+
- **Artifacts** — existing services, modules, and seams that already own, or
|
|
24
|
+
could own, the responsibility in question. Search by capability, not just by
|
|
25
|
+
name: the component that does this may be called something else entirely.
|
|
26
|
+
- **Written decisions** — the ADR log, established conventions, and prior audit
|
|
27
|
+
findings. A decision already made and recorded is not yours to re-litigate
|
|
28
|
+
silently; supersede it explicitly or work within it.
|
|
29
|
+
|
|
30
|
+
**Exit condition** — one line, then keep going in the same response:
|
|
31
|
+
*"`<existing component>` already handles `<responsibility>`; it does / does not
|
|
32
|
+
serve this because `<reason>`."*
|
|
33
|
+
|
|
34
|
+
**This step is not a gate on delivering.** Greenfield — nothing built yet, or
|
|
35
|
+
nothing you can reach — closes it in one line: say so and go straight to Step 1.
|
|
36
|
+
When you can't inspect, name what you would check and continue under stated
|
|
37
|
+
assumptions. Never answer a design question with inventory and questions alone;
|
|
38
|
+
carry the options, the recommendation, and the trade-offs in the same reply.
|
|
39
|
+
|
|
40
|
+
This constrains the input, not the choice. A new component is a fine outcome;
|
|
41
|
+
an unexamined one isn't.
|
|
42
|
+
|
|
13
43
|
### Step 1: Frame the Decision
|
|
14
44
|
|
|
15
45
|
Identify the exact decision to be made. A good architectural question is specific and scoped:
|
|
@@ -26,7 +56,8 @@ If the user's question is too broad, help narrow it by asking:
|
|
|
26
56
|
|
|
27
57
|
Understand the current state before proposing changes:
|
|
28
58
|
|
|
29
|
-
- **Current architecture**:
|
|
59
|
+
- **Current architecture**: the Step 0 finding — what exists today, established
|
|
60
|
+
from the code rather than assumed. If you can't state it, Step 0 isn't done.
|
|
30
61
|
- **Quality attributes that matter**: Performance? Scalability? Developer experience? Maintainability? Deployment simplicity?
|
|
31
62
|
- **Team context**: Team size, expertise, on-call burden
|
|
32
63
|
- **Growth trajectory**: Expected scale in 6-12 months (not 5 years — YAGNI)
|
|
@@ -8,6 +8,33 @@ allowed-tools: Read, Grep, Glob, Write, Edit
|
|
|
8
8
|
|
|
9
9
|
Design configuration that is safe, auditable, and easy to change. Most configuration problems (hardcoded secrets, production config in dev, feature flags with no off-switch) come from not designing the system upfront.
|
|
10
10
|
|
|
11
|
+
## Step 0: Inventory What Already Exists
|
|
12
|
+
|
|
13
|
+
Before introducing a new environment variable, secret, feature flag, or
|
|
14
|
+
constant, establish what the project already defines. Inspect the current state
|
|
15
|
+
**directly** — grep the tree; don't infer it from the requirements or memory.
|
|
16
|
+
|
|
17
|
+
Cover both:
|
|
18
|
+
|
|
19
|
+
- **Artifacts** — existing key names *and* the values themselves. Search for the
|
|
20
|
+
literal value, not just the name: the same timeout or limit is often already
|
|
21
|
+
hardcoded in two places, and adding a third is the common failure.
|
|
22
|
+
- **Written decisions** — config conventions, naming schemes, `.env.example`,
|
|
23
|
+
and prior audit findings that already govern where things live.
|
|
24
|
+
|
|
25
|
+
**Exit condition** — one line, then keep going in the same response:
|
|
26
|
+
*"`<existing key>` already carries `<value>`; it does / does not serve this
|
|
27
|
+
because `<reason>`."*
|
|
28
|
+
|
|
29
|
+
**This step is not a gate on delivering.** Greenfield — nothing configured yet,
|
|
30
|
+
or nothing you can reach — closes it in one line: say so and go straight to
|
|
31
|
+
Step 1. When you can't inspect, name what you would check and continue under
|
|
32
|
+
stated assumptions. Never answer with inventory and questions alone; produce the
|
|
33
|
+
configuration design in the same reply.
|
|
34
|
+
|
|
35
|
+
This constrains the input, not the choice. A new key is a fine outcome; an
|
|
36
|
+
unexamined one isn't — and a duplicated value will drift.
|
|
37
|
+
|
|
11
38
|
## Step 1: Identify All Configuration Needed
|
|
12
39
|
|
|
13
40
|
List every piece of configuration the feature or service requires:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-modeling
|
|
3
3
|
description: "Design database schemas, relationships, indexes, and migration strategies — relational and document stores. Triggers: data model, schema design, ER diagram, database schema, table design, foreign key, index strategy, normalization, denormalization, migration plan, document model, partition key."
|
|
4
|
-
allowed-tools: Read, Grep, Glob, Write, Edit
|
|
4
|
+
allowed-tools: Read, Grep, Glob, Write, Edit, Bash
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Data Modeling
|
|
@@ -10,6 +10,36 @@ Guide the user through designing data models that are normalized, consistent, an
|
|
|
10
10
|
|
|
11
11
|
## Workflow
|
|
12
12
|
|
|
13
|
+
### Step 0: Inventory What Already Exists
|
|
14
|
+
|
|
15
|
+
If any database exists, establish what it already holds before proposing a
|
|
16
|
+
single new table, column, or index. Inspect the current schema **directly** —
|
|
17
|
+
don't infer it from the requirements, the ORM models, or memory. Dump it from
|
|
18
|
+
the live database where you can reach one, otherwise read the migration history
|
|
19
|
+
end to end.
|
|
20
|
+
|
|
21
|
+
Cover both:
|
|
22
|
+
|
|
23
|
+
- **Artifacts** — existing tables, columns, and indexes that hold, or could
|
|
24
|
+
hold, the fact in question. Grep for the concept by name and by synonym; the
|
|
25
|
+
right table is often named for a different concern than the one you're serving.
|
|
26
|
+
- **Written decisions** — ADRs, schema conventions, and prior audit findings
|
|
27
|
+
that already constrain the shape.
|
|
28
|
+
|
|
29
|
+
**Exit condition** — one line, then keep going in the same response:
|
|
30
|
+
*"`<existing table>` already stores `<fact>`; it does / does not serve this
|
|
31
|
+
because `<reason>`."*
|
|
32
|
+
|
|
33
|
+
**This step is not a gate on delivering.** Greenfield — no database yet, or none
|
|
34
|
+
you can reach — closes it in one line: say so and go straight to Step 1. When
|
|
35
|
+
you can't inspect (no repo access, a conversational answer), name what you would
|
|
36
|
+
check and continue under stated assumptions. Never answer a schema request with
|
|
37
|
+
inventory and questions alone; produce the model in the same reply.
|
|
38
|
+
|
|
39
|
+
This constrains the input, not the choice. A new table is a fine outcome; an
|
|
40
|
+
unexamined one isn't — and a second home for the same fact is duplication
|
|
41
|
+
however well it's named.
|
|
42
|
+
|
|
13
43
|
### Step 1: Understand the Domain
|
|
14
44
|
|
|
15
45
|
Before touching schemas, understand the business domain:
|
|
@@ -14,6 +14,35 @@ Design the technical structure of frontend applications — component hierarchy,
|
|
|
14
14
|
|
|
15
15
|
## Workflow
|
|
16
16
|
|
|
17
|
+
### Step 0: Inventory What Already Exists
|
|
18
|
+
|
|
19
|
+
In an existing codebase, establish what the app already provides before adding a
|
|
20
|
+
new component, hook, store, or token. Search the shared surfaces **directly** —
|
|
21
|
+
`components/`, `hooks/`, `lib/`, the token file, and each feature's public
|
|
22
|
+
`index.ts` — rather than inferring from the design or from memory.
|
|
23
|
+
|
|
24
|
+
Cover both:
|
|
25
|
+
|
|
26
|
+
- **Artifacts** — existing components, hooks, stores, and tokens that already
|
|
27
|
+
cover, or nearly cover, the need. Search by behavior, not just by name: the
|
|
28
|
+
component you want often exists under a different label.
|
|
29
|
+
- **Written decisions** — established conventions, the design system's rules,
|
|
30
|
+
and prior audit findings.
|
|
31
|
+
|
|
32
|
+
**Exit condition** — one line, then keep going in the same response:
|
|
33
|
+
*"`<existing component/hook>` already covers `<behavior>`; it does / does not
|
|
34
|
+
serve this because `<reason>`."*
|
|
35
|
+
|
|
36
|
+
**This step is not a gate on delivering.** Greenfield — a new app, or a codebase
|
|
37
|
+
you can't reach — closes it in one line: say so and go straight to Step 1. When
|
|
38
|
+
you can't inspect, name what you would check and continue under stated
|
|
39
|
+
assumptions. Never answer with inventory and questions alone; produce the
|
|
40
|
+
architecture in the same reply.
|
|
41
|
+
|
|
42
|
+
This constrains the input, not the choice. A new component is a fine outcome; an
|
|
43
|
+
unexamined one isn't — a near-duplicate of an existing one is how design systems
|
|
44
|
+
rot.
|
|
45
|
+
|
|
17
46
|
### Step 1: Design the Component Hierarchy
|
|
18
47
|
|
|
19
48
|
Start from the UI design (or the screen spec from `ui-ux-design`) and decompose into components:
|
|
@@ -80,6 +80,14 @@ when any of these fires:
|
|
|
80
80
|
- two consecutive checkpoints failed verification
|
|
81
81
|
- you catch yourself thinking "the plan didn't anticipate this, but I'll just…"
|
|
82
82
|
|
|
83
|
+
A **structural question the plan didn't answer** fires this too: where a piece
|
|
84
|
+
of state lives, whether to add a table, column, service, module, store, or
|
|
85
|
+
config key. Don't settle it inline — **invoke `data-modeling` (data shape) or
|
|
86
|
+
`architecture-design` (structure and boundaries)** and let it run its inventory
|
|
87
|
+
of what already exists. These decisions arrive disguised as implementation
|
|
88
|
+
details, and they're the ones the plan is least able to absorb silently:
|
|
89
|
+
persistent constructs outlive the plan that introduced them.
|
|
90
|
+
|
|
83
91
|
Re-planning openly is cheap; silently executing a plan that no longer matches
|
|
84
92
|
reality delivers the wrong thing with perfect discipline. Sunk progress is not a
|
|
85
93
|
reason to continue — the remaining work costs the same whether or not you admit
|
|
@@ -109,6 +117,7 @@ that still describes the pre-drift design is a stale document like any other.
|
|
|
109
117
|
| "The docs can come after the plan lands" | The plan changed what the docs describe; landing it leaves them actively wrong, and nobody re-derives the whole surface later. Reconcile at close-out. |
|
|
110
118
|
| "I already have the Iron Law in context, invoking the gate is redundant" | Quoting a law isn't running the gate. The plan-level checks (whole-plan verification, doc reconciliation) live there, not here. |
|
|
111
119
|
| "The plan is outdated here; I'll adapt as I go" | That's drift. Log it; if it's structural, stop and re-plan — don't decide alone silently. |
|
|
120
|
+
| "This is an implementation detail, not an architecture decision" | Anything that persists — a table, a column, a config key, a shared module — is structure, whatever task it arrived under. Route it to the design skill. |
|
|
112
121
|
| "We're 80% through; re-planning now wastes all that work" | Sunk cost. Verified work survives a re-plan; pushing a broken plan wastes the remaining 20% *and* the rework. |
|
|
113
122
|
| "Marking them done unblocks the team; we'll backfill verification" | A false "done" misinforms every decision downstream. Report the honest state instead. |
|
|
114
123
|
|
|
@@ -118,11 +127,15 @@ that still describes the pre-drift design is a stale document like any other.
|
|
|
118
127
|
- You can't say what command verified the last checkpoint.
|
|
119
128
|
- "Should work" / "looks done" appearing in your status report.
|
|
120
129
|
- Mid-execution, you're building something the plan never mentioned.
|
|
130
|
+
- You're about to add a persistent construct (table, column, config key, shared
|
|
131
|
+
module) that the plan never named — and you haven't checked what already exists.
|
|
121
132
|
- You've stopped consulting the plan and are working from memory.
|
|
122
133
|
|
|
123
134
|
## Cross-Skill References
|
|
124
135
|
|
|
125
136
|
- `feature-planning` — creates and (on re-plan) revises the plan this skill executes
|
|
137
|
+
- `data-modeling` — where a schema question surfaced mid-execution belongs
|
|
138
|
+
- `architecture-design` — where a structural or boundary question belongs
|
|
126
139
|
- `verification-before-completion` — the per-claim evidence gate each checkpoint applies
|
|
127
140
|
- `tdd-workflow` — how the implementation tasks inside a batch get built
|
|
128
141
|
- `git-workflow` — commit at checkpoint boundaries; the evidence belongs in the message
|
|
@@ -104,7 +104,10 @@ As base models improve, a skill can become pure overhead. Once per release cycle
|
|
|
104
104
|
— or on a major base-model update — re-run the skill's 3 evals RED on shipping
|
|
105
105
|
models via `evals/workflow-runner.mjs`; re-sample ×3 on borderline scores and
|
|
106
106
|
read the judge journal before calling a result variance (a "flaky" case is often
|
|
107
|
-
a real content gap the skill causes).
|
|
107
|
+
a real content gap the skill causes). **First check the skill's reference mass:**
|
|
108
|
+
the harnesses can't read `references/` or `templates/`, so where that content
|
|
109
|
+
rivals `SKILL.md` the RED ≈ GREEN verdict is a harness artifact — judge those by
|
|
110
|
+
hand instead. Otherwise, if RED ≈ GREEN across all 3 evals (0/0
|
|
108
111
|
tool-dependent assertion pairs don't count), **slim first** — cut what the model
|
|
109
112
|
does unaided; keep the Iron Law, boundaries, and cross-skill references — then
|
|
110
113
|
re-run GREEN (gate: GREEN ≥ RED per case). Retire only after a slimmed skill
|