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 CHANGED
@@ -1 +1 @@
1
- 0.6.2
1
+ 0.6.3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swe-workflow-skills",
3
- "version": "0.6.2",
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**: What exists today? Read the codebase if available.
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). If RED ≈ GREEN across all 3 evals (0/0
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