swe-workflow-skills 0.11.5 → 0.11.6

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.11.5
1
+ 0.11.6
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "swe-workflow-skills",
3
- "version": "0.11.5",
3
+ "version": "0.11.6",
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": {
@@ -116,6 +116,8 @@ For each breaking change, define the coordination plan:
116
116
  - What is the migration deadline?
117
117
  - Is there a deprecation period?
118
118
 
119
+ **Exit condition:** the dependents with their Step 3 classification, and the propagation plan, written in your reply before any design question or code. This is not a gate on delivering: when a design choice is open, give the map under your recommended option and put the question beside it. A choice dialog shows only its own text, so a question asked instead of the map hides it.
120
+
119
121
  ## Principles Applied
120
122
 
121
123
  - **Functional independence**: Minimize blast radius — prefer additive changes over breaking changes when both achieve the same goal
@@ -4,13 +4,13 @@
4
4
  {
5
5
  "id": 1,
6
6
  "prompt": "I want to rename the 'user_id' field to 'account_id' in our REST API response for GET /api/users. We have a mobile app, a web app, and two internal microservices that call this endpoint. What's the impact?",
7
- "expected_output": "Dependency impact analysis identifying all four consumers, classifying the rename as breaking for all of them, recommending a versioning strategy, and producing a migration plan with coordination steps",
7
+ "expected_output": "Dependency impact analysis identifying all four consumers, classifying the rename as breaking for all of them, recommending a transition that keeps user_id working for old mobile app versions (expand-contract dual fields or a versioned endpoint), and producing a migration plan with coordination steps",
8
8
  "assertions": [
9
9
  "Identifies all four consumers (mobile app, web app, two microservices) as affected",
10
10
  "Classifies this as a breaking change for all consumers (field rename, not additive)",
11
11
  "Flags mobile app as highest risk (users may not update; old app versions still call the API)",
12
- "Recommends API versioning (v1 keeps user_id, v2 uses account_id) for the mobile app case",
13
- "Produces a migration sequence: add v2, migrate internal consumers, migrate web, sunset v1 after mobile migration window",
12
+ "Recommends a transition that keeps user_id working for old mobile app versions while account_id is introduced: both fields in the response (expand-contract) or a versioned endpoint (v1 keeps user_id, v2 uses account_id)",
13
+ "Produces a migration sequence: introduce account_id alongside user_id (or a v2), migrate the internal consumers and the web app, and remove user_id (or sunset v1) only after the mobile migration window",
14
14
  "Does not suggest a simultaneous big-bang rename as the only option"
15
15
  ]
16
16
  },
@@ -23,7 +23,7 @@
23
23
  "Notes that existing code ignores the new column and remains safe",
24
24
  "Flags that code selecting whole rows — ORM models, serializers — will start returning the new column",
25
25
  "Does not require complex coordination or versioning",
26
- "Gives a clear 'safe to proceed' verdict with any minor caveats"
26
+ "Leads with a verdict, either safe to deploy or safe once named checks pass (such as positional SELECT * mapping or DTOs that reject unknown fields), rather than declining to answer without more information"
27
27
  ]
28
28
  },
29
29
  {
@@ -37,7 +37,11 @@ Then give each row a verdict:
37
37
 
38
38
  **Security-critical code:** never write your own cryptographic primitives. Thin protocol code over a crypto library you already ship can be owned, for example TOTP, a request signer, or a WebAuthn check that only accepts `none` attestation. Own it only when the user chooses to (ask), with a test per spec step, and with differential tests against the library kept as a dev-only dependency.
39
39
 
40
- **Exit condition:** the table with a verdict per row, in the same response. Steps 2–4 apply only to rows marked Adopt.
40
+ **Exit condition:** the table with a verdict per row, written in your reply, in the same response. Steps 2–4 apply only to rows marked Adopt.
41
+
42
+ - **The table goes in the message, not in a question.** A choice dialog shows only its own text, so a question whose option labels carry the comparison hides the table. Write the table and your recommendation first; the question that follows only names the options.
43
+ - **A registry page fills no row.** The package existing, its licence and its last release are Steps 2–3. A verdict reached from them has skipped this step.
44
+ - **Size the own module with the hard part in it.** If our version would have to rebuild what makes the library worth having (its typing, its protocol or OAuth flow, its parser), count that part, or the own module looks smaller than it is.
41
45
 
42
46
  ### Step 2: Verify the Package Exists (anti-slopsquatting)
43
47
 
@@ -77,6 +77,20 @@
77
77
  "Delivers the implementation plan in the same response rather than stopping at the question",
78
78
  "If the verifier is owned, tests each verification step of the spec and cross-checks it against the library kept as a dev-only dependency"
79
79
  ]
80
+ },
81
+ {
82
+ "id": 3,
83
+ "prompt": "We're adding a small MCP server in Python 3.12 in front of our existing REST API, so Claude's scheduled tasks can call five tools over Streamable HTTP. People sign in with Google Workspace accounts limited to our domain, and Claude's connectors need OAuth with refresh tokens so unattended runs keep working. I'm leaning towards FastMCP; the other option is the official `mcp` SDK plus our own OAuth authorization server. FastMCP is on PyPI, Apache-2.0, and had a release last week, so it's probably fine. Check it before we add it.",
84
+ "pressure": [
85
+ "authority"
86
+ ],
87
+ "expected_behavior": "Runs Step 1 rather than stopping at the facts the user offered: compares FastMCP with the official SDK plus an own OAuth server on what each covers, what FastMCP pulls in, and how big and how risky the own side is. The own side is mostly an OAuth authorization server delegating to Google, which is security-critical. The comparison and the recommendation are written out in the reply, not compressed into a one-line verdict or a bare question.",
88
+ "assertions": [
89
+ "Compares FastMCP with the official `mcp` SDK plus an own OAuth server on what each covers here (the MCP transport, the OAuth flow delegating to Google, refresh tokens, token storage), rather than concluding from the PyPI listing, licence and release date",
90
+ "Gives a rough size for the own-module side and says its bulk is the OAuth authorization server, which is security-critical code",
91
+ "Says what FastMCP pulls in (transitive packages, install size or maintainer groups), or says it must be checked",
92
+ "Writes the comparison out in the reply with a recommendation, its primary reason and the risks accepted, rather than a one-line verdict or only a question"
93
+ ]
80
94
  }
81
95
  ]
82
96
  }
@@ -67,7 +67,7 @@ Decompose the feature into implementation tasks. Each task should:
67
67
 
68
68
  Use this structure for each task — see [templates/task.md](templates/task.md).
69
69
 
70
- When a task adds a library, run `dependency-management`'s Step 1 on it before writing the task, and put the verdict in the plan's **New dependencies** section: own module, adopt, or a question for the user. A plan that lists a library with only a check that it exists hasn't done this.
70
+ When a task adds a library, run `dependency-management`'s Step 1 on it before writing the task, including a library an RFC, ADR or issue already names, and put the verdict in the plan's **New dependencies** section: own module, adopt, or a question for the user. A plan that lists a library with only a check that it exists hasn't done this, and neither has one that schedules the check as a later task.
71
71
 
72
72
  ### Step 4: Map Dependencies
73
73
 
@@ -53,7 +53,10 @@ performance…) are exactly what the skills are for. When in doubt, route.
53
53
  **Naming a new library is a routing point**, even mid-plan or mid-build and even
54
54
  when nobody asked about dependencies. Invoke `dependency-management` before the
55
55
  library goes into a plan, an ADR, or an install command. Its first question is
56
- whether you need the library at all.
56
+ whether you need the library at all. A library an RFC, ADR, issue or earlier plan
57
+ already names is a candidate, not a decision. Writing "run
58
+ `dependency-management`" as a later step of the plan doesn't count: the plan
59
+ names the library only after the check has run.
57
60
 
58
61
  Skip **only** for genuinely trivial, conversational, or information-lookup
59
62
  requests where no workflow adds value, or when the user tells you not to use a