vstack 0.0.0__py3-none-any.whl
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.
- vstack/__init__.py +5 -0
- vstack/__main__.py +5 -0
- vstack/_templates/agents/_partials/agent-skill-boundary.md +5 -0
- vstack/_templates/agents/architect/config.yaml +38 -0
- vstack/_templates/agents/architect/template.md +84 -0
- vstack/_templates/agents/designer/config.yaml +36 -0
- vstack/_templates/agents/designer/template.md +99 -0
- vstack/_templates/agents/engineer/config.yaml +36 -0
- vstack/_templates/agents/engineer/template.md +88 -0
- vstack/_templates/agents/product/config.yaml +37 -0
- vstack/_templates/agents/product/template.md +87 -0
- vstack/_templates/agents/release/config.yaml +35 -0
- vstack/_templates/agents/release/template.md +86 -0
- vstack/_templates/agents/tester/config.yaml +41 -0
- vstack/_templates/agents/tester/template.md +90 -0
- vstack/_templates/instructions/git/config.yaml +4 -0
- vstack/_templates/instructions/git/template.md +36 -0
- vstack/_templates/instructions/python/config.yaml +4 -0
- vstack/_templates/instructions/python/template.md +37 -0
- vstack/_templates/prompts/code-review/config.yaml +10 -0
- vstack/_templates/prompts/code-review/template.md +39 -0
- vstack/_templates/skills/_partials/base-branch.md +8 -0
- vstack/_templates/skills/_partials/observability-checklist.md +36 -0
- vstack/_templates/skills/_partials/run-tests.md +22 -0
- vstack/_templates/skills/_partials/skill-context.md +21 -0
- vstack/_templates/skills/adr/config.yaml +17 -0
- vstack/_templates/skills/adr/template.md +167 -0
- vstack/_templates/skills/analyse/config.yaml +16 -0
- vstack/_templates/skills/analyse/template.md +188 -0
- vstack/_templates/skills/architecture/config.yaml +18 -0
- vstack/_templates/skills/architecture/template.md +213 -0
- vstack/_templates/skills/cicd/config.yaml +16 -0
- vstack/_templates/skills/cicd/template.md +169 -0
- vstack/_templates/skills/code-review/config.yaml +16 -0
- vstack/_templates/skills/code-review/template.md +180 -0
- vstack/_templates/skills/concise/config.yaml +16 -0
- vstack/_templates/skills/concise/template.md +128 -0
- vstack/_templates/skills/consult/config.yaml +18 -0
- vstack/_templates/skills/consult/template.md +195 -0
- vstack/_templates/skills/container/config.yaml +17 -0
- vstack/_templates/skills/container/template.md +122 -0
- vstack/_templates/skills/debug/config.yaml +16 -0
- vstack/_templates/skills/debug/template.md +247 -0
- vstack/_templates/skills/dependency/config.yaml +18 -0
- vstack/_templates/skills/dependency/template.md +293 -0
- vstack/_templates/skills/design/config.yaml +16 -0
- vstack/_templates/skills/design/template.md +231 -0
- vstack/_templates/skills/docs/config.yaml +17 -0
- vstack/_templates/skills/docs/template.md +128 -0
- vstack/_templates/skills/explore/config.yaml +17 -0
- vstack/_templates/skills/explore/template.md +188 -0
- vstack/_templates/skills/guardrails/config.yaml +16 -0
- vstack/_templates/skills/guardrails/template.md +45 -0
- vstack/_templates/skills/incident/config.yaml +17 -0
- vstack/_templates/skills/incident/template.md +293 -0
- vstack/_templates/skills/inspect/config.yaml +16 -0
- vstack/_templates/skills/inspect/template.md +105 -0
- vstack/_templates/skills/migrate/config.yaml +17 -0
- vstack/_templates/skills/migrate/template.md +298 -0
- vstack/_templates/skills/onboard/config.yaml +18 -0
- vstack/_templates/skills/onboard/template.md +289 -0
- vstack/_templates/skills/openapi/config.yaml +17 -0
- vstack/_templates/skills/openapi/template.md +382 -0
- vstack/_templates/skills/performance/config.yaml +15 -0
- vstack/_templates/skills/performance/template.md +198 -0
- vstack/_templates/skills/pr/config.yaml +15 -0
- vstack/_templates/skills/pr/template.md +108 -0
- vstack/_templates/skills/refactor/config.yaml +18 -0
- vstack/_templates/skills/refactor/template.md +283 -0
- vstack/_templates/skills/release-notes/config.yaml +16 -0
- vstack/_templates/skills/release-notes/template.md +127 -0
- vstack/_templates/skills/requirements/config.yaml +17 -0
- vstack/_templates/skills/requirements/template.md +187 -0
- vstack/_templates/skills/security/config.yaml +17 -0
- vstack/_templates/skills/security/template.md +256 -0
- vstack/_templates/skills/verify/config.yaml +17 -0
- vstack/_templates/skills/verify/template.md +201 -0
- vstack/_templates/skills/vision/config.yaml +19 -0
- vstack/_templates/skills/vision/template.md +169 -0
- vstack/agents/__init__.py +5 -0
- vstack/agents/config.py +67 -0
- vstack/agents/constants.py +14 -0
- vstack/agents/generator.py +20 -0
- vstack/artifacts/__init__.py +17 -0
- vstack/artifacts/config.py +111 -0
- vstack/artifacts/constants.py +6 -0
- vstack/artifacts/generator.py +406 -0
- vstack/artifacts/models.py +55 -0
- vstack/artifacts/protocol.py +50 -0
- vstack/cli/__init__.py +3 -0
- vstack/cli/commands.py +596 -0
- vstack/cli/constants.py +33 -0
- vstack/cli/manifest.py +166 -0
- vstack/cli/parser.py +156 -0
- vstack/constants.py +84 -0
- vstack/frontmatter/__init__.py +8 -0
- vstack/frontmatter/parser.py +272 -0
- vstack/frontmatter/schema.py +142 -0
- vstack/frontmatter/serializer.py +208 -0
- vstack/instructions/__init__.py +5 -0
- vstack/instructions/config.py +21 -0
- vstack/instructions/constants.py +9 -0
- vstack/instructions/generator.py +13 -0
- vstack/main.py +71 -0
- vstack/models.py +35 -0
- vstack/prompts/__init__.py +5 -0
- vstack/prompts/config.py +21 -0
- vstack/prompts/constants.py +9 -0
- vstack/prompts/generator.py +13 -0
- vstack/skills/__init__.py +5 -0
- vstack/skills/config.py +58 -0
- vstack/skills/constants.py +17 -0
- vstack/skills/generator.py +20 -0
- vstack/skills/models.py +15 -0
- vstack-0.0.0.dist-info/METADATA +725 -0
- vstack-0.0.0.dist-info/RECORD +119 -0
- vstack-0.0.0.dist-info/WHEEL +4 -0
- vstack-0.0.0.dist-info/entry_points.txt +3 -0
- vstack-0.0.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
{{SKILL_CONTEXT}}
|
|
2
|
+
|
|
3
|
+
# incident — Incident Analysis & Post-Mortem
|
|
4
|
+
|
|
5
|
+
Guide a structured incident investigation and produce a blameless post-mortem
|
|
6
|
+
document. The goal is learning and prevention — not blame.
|
|
7
|
+
|
|
8
|
+
## Out of scope
|
|
9
|
+
|
|
10
|
+
- Live incident response / on-call triage (this skill is for retrospective analysis)
|
|
11
|
+
- Root-cause debugging of code bugs (use `debug`)
|
|
12
|
+
- Security audit of vulnerabilities (use `security`)
|
|
13
|
+
- Performance benchmarking (use `performance`)
|
|
14
|
+
|
|
15
|
+
**Golden rule: Incidents are system failures, not human failures. Every finding
|
|
16
|
+
must be framed as a system improvement opportunity, never as individual blame.**
|
|
17
|
+
|
|
18
|
+
______________________________________________________________________
|
|
19
|
+
|
|
20
|
+
## Step 0: Gather Incident Context
|
|
21
|
+
|
|
22
|
+
Before analysis, collect all available evidence:
|
|
23
|
+
|
|
24
|
+
> **Questions to answer:**
|
|
25
|
+
>
|
|
26
|
+
> - When did the incident start and end? (UTC timestamps)
|
|
27
|
+
> - What was the user-visible impact? (errors, latency, data loss, downtime)
|
|
28
|
+
> - What services were affected?
|
|
29
|
+
> - Who detected it and how? (alert, user report, monitoring)
|
|
30
|
+
> - What was done to resolve it?
|
|
31
|
+
> - Is there a severity classification? (P0/P1/P2 or SEV1/SEV2/SEV3)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Gather git history around the incident window
|
|
35
|
+
git log --oneline --since="YYYY-MM-DD" --until="YYYY-MM-DD" 2>/dev/null | head -30
|
|
36
|
+
|
|
37
|
+
# Check recent deploys
|
|
38
|
+
git log --oneline --merges --since="YYYY-MM-DD" 2>/dev/null | head -20
|
|
39
|
+
|
|
40
|
+
# Find relevant config or infra changes
|
|
41
|
+
git log --oneline --since="YYYY-MM-DD" -- '*.yaml' '*.yml' '*.toml' '*.env*' 2>/dev/null | head -20
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Document:
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
Incident ID: [INC-NNNN or date-slug]
|
|
48
|
+
Severity: [P0 | P1 | P2 | SEV1 | SEV2 | SEV3]
|
|
49
|
+
Start: [YYYY-MM-DD HH:MM UTC]
|
|
50
|
+
End: [YYYY-MM-DD HH:MM UTC]
|
|
51
|
+
Duration: [N hours N minutes]
|
|
52
|
+
Detected by: [alert | user report | manual check]
|
|
53
|
+
Services: [list of affected services]
|
|
54
|
+
Impact: [user-facing description]
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
______________________________________________________________________
|
|
58
|
+
|
|
59
|
+
## Step 1: Reconstruct the Timeline
|
|
60
|
+
|
|
61
|
+
Build a precise, chronological timeline of events. Include:
|
|
62
|
+
|
|
63
|
+
- System events (deploys, config changes, traffic spikes)
|
|
64
|
+
- Detection events (alerts fired, pages sent)
|
|
65
|
+
- Response actions (who did what, when)
|
|
66
|
+
- Resolution events (rollback, fix deployed, service restored)
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Timeline (all times UTC):
|
|
70
|
+
|
|
71
|
+
HH:MM — [event description] — [who / what system]
|
|
72
|
+
HH:MM — [event description] — [who / what system]
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
Key markers:
|
|
76
|
+
Impact start: HH:MM
|
|
77
|
+
Detection: HH:MM (+N min after impact start)
|
|
78
|
+
Response start: HH:MM (+N min after detection)
|
|
79
|
+
Mitigation: HH:MM (+N min after response)
|
|
80
|
+
Full resolution: HH:MM
|
|
81
|
+
Total duration: N hours N minutes
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
______________________________________________________________________
|
|
85
|
+
|
|
86
|
+
## Step 2: Identify Contributing Factors
|
|
87
|
+
|
|
88
|
+
List ALL factors that contributed to the incident — not just the "trigger".
|
|
89
|
+
Incidents are never caused by a single thing. Use the 5-Whys technique:
|
|
90
|
+
|
|
91
|
+
**5-Whys template:**
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
Why did [impact] happen?
|
|
95
|
+
Because [immediate cause].
|
|
96
|
+
|
|
97
|
+
Why did [immediate cause] happen?
|
|
98
|
+
Because [contributing factor 1].
|
|
99
|
+
|
|
100
|
+
Why did [contributing factor 1] exist?
|
|
101
|
+
Because [deeper cause].
|
|
102
|
+
|
|
103
|
+
Why did [deeper cause] exist?
|
|
104
|
+
Because [systemic gap].
|
|
105
|
+
|
|
106
|
+
Why did [systemic gap] exist?
|
|
107
|
+
Because [root systemic condition].
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Categorize contributing factors:
|
|
111
|
+
|
|
112
|
+
| Category | Factor |
|
|
113
|
+
| ------------- | -------------------------------------------------------- |
|
|
114
|
+
| Code / logic | [e.g. missing error handling, race condition] |
|
|
115
|
+
| Configuration | [e.g. incorrect timeout, missing feature flag] |
|
|
116
|
+
| Deployment | [e.g. no canary, missing rollback plan] |
|
|
117
|
+
| Monitoring | [e.g. alert threshold too high, missing metric] |
|
|
118
|
+
| Process | [e.g. no review for config changes, unclear runbook] |
|
|
119
|
+
| External | [e.g. upstream dependency failure, cloud provider issue] |
|
|
120
|
+
| Knowledge | [e.g. undocumented behaviour, tribal knowledge gap] |
|
|
121
|
+
|
|
122
|
+
______________________________________________________________________
|
|
123
|
+
|
|
124
|
+
## Step 3: Determine Root Cause
|
|
125
|
+
|
|
126
|
+
The root cause is the deepest systemic condition that, if addressed, would
|
|
127
|
+
prevent this class of incident from recurring.
|
|
128
|
+
|
|
129
|
+
**Root cause is NOT:**
|
|
130
|
+
|
|
131
|
+
- "Human error" (humans make mistakes — the system must be resilient to them)
|
|
132
|
+
- "We forgot to test X" (why was it possible to ship without testing X?)
|
|
133
|
+
- The deployment that triggered it (that is the trigger, not the cause)
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
Root cause:
|
|
137
|
+
[One clear, specific statement of the systemic condition]
|
|
138
|
+
|
|
139
|
+
Evidence:
|
|
140
|
+
[What evidence supports this conclusion]
|
|
141
|
+
|
|
142
|
+
Class of incident:
|
|
143
|
+
[Deploy regression | Configuration drift | Dependency failure |
|
|
144
|
+
Capacity / traffic | Data corruption | Security breach | Other]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
______________________________________________________________________
|
|
148
|
+
|
|
149
|
+
## Step 4: Assess Impact
|
|
150
|
+
|
|
151
|
+
Quantify the impact precisely:
|
|
152
|
+
|
|
153
|
+
```text
|
|
154
|
+
User impact:
|
|
155
|
+
Affected users: [N users | N% of traffic | all users]
|
|
156
|
+
Error rate: [N% of requests returned errors]
|
|
157
|
+
Latency increase: [p99 increased from Nms to Nms]
|
|
158
|
+
Data loss: [none | N records | describe scope]
|
|
159
|
+
Feature unavailable:[list features]
|
|
160
|
+
|
|
161
|
+
Business impact:
|
|
162
|
+
Revenue: [estimated impact if known]
|
|
163
|
+
SLA breach: [yes — N minutes over limit | no]
|
|
164
|
+
Customer comms: [status page update | direct notification | none]
|
|
165
|
+
|
|
166
|
+
Detection gap:
|
|
167
|
+
Time to detect: [N minutes]
|
|
168
|
+
How detected: [alert | user complaint | manual]
|
|
169
|
+
Why not faster: [threshold too high | missing alert | other]
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
______________________________________________________________________
|
|
173
|
+
|
|
174
|
+
## Step 5: Write Action Items
|
|
175
|
+
|
|
176
|
+
Action items must be:
|
|
177
|
+
|
|
178
|
+
- **Specific** — not "improve monitoring" but "add alert on p99 > 500ms for /checkout"
|
|
179
|
+
- **Owned** — assigned to a person or team
|
|
180
|
+
- **Time-bound** — target date or sprint
|
|
181
|
+
- **Categorized** — prevention, detection, or response improvement
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
Action items:
|
|
185
|
+
|
|
186
|
+
Prevention (stop this from happening again):
|
|
187
|
+
[ ] [specific action] — owner: [name/team] — due: [date/sprint]
|
|
188
|
+
|
|
189
|
+
Detection (catch it faster next time):
|
|
190
|
+
[ ] [specific action] — owner: [name/team] — due: [date/sprint]
|
|
191
|
+
|
|
192
|
+
Response (resolve it faster next time):
|
|
193
|
+
[ ] [specific action] — owner: [name/team] — due: [date/sprint]
|
|
194
|
+
[ ] Write or update runbook for this failure class — owner: [name/team] — due: [date/sprint]
|
|
195
|
+
|
|
196
|
+
Process (improve how we handle incidents):
|
|
197
|
+
[ ] [specific action] — owner: [name/team] — due: [date/sprint]
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
______________________________________________________________________
|
|
201
|
+
|
|
202
|
+
## Step 6: Produce the Post-Mortem Document
|
|
203
|
+
|
|
204
|
+
Write the post-mortem to `docs/postmortems/YYYY-MM-DD-<slug>.md`:
|
|
205
|
+
|
|
206
|
+
```markdown
|
|
207
|
+
# Post-Mortem: [Short Title]
|
|
208
|
+
|
|
209
|
+
**Date:** YYYY-MM-DD
|
|
210
|
+
**Severity:** [P0 | P1 | P2]
|
|
211
|
+
**Duration:** N hours N minutes
|
|
212
|
+
**Status:** [Draft | In Review | Closed]
|
|
213
|
+
**Author(s):** [names]
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Summary
|
|
218
|
+
|
|
219
|
+
[2–3 sentences: what happened, what was the impact, how was it resolved.
|
|
220
|
+
Written for a non-technical audience.]
|
|
221
|
+
|
|
222
|
+
## Impact
|
|
223
|
+
|
|
224
|
+
| Dimension | Details |
|
|
225
|
+
|---|---|
|
|
226
|
+
| Duration | N hours N minutes (HH:MM–HH:MM UTC) |
|
|
227
|
+
| Users affected | [N users / N% of traffic] |
|
|
228
|
+
| Error rate | [N%] |
|
|
229
|
+
| SLA breach | [yes / no] |
|
|
230
|
+
| Data loss | [none / description] |
|
|
231
|
+
|
|
232
|
+
## Timeline
|
|
233
|
+
|
|
234
|
+
| Time (UTC) | Event |
|
|
235
|
+
|---|---|
|
|
236
|
+
| HH:MM | [event] |
|
|
237
|
+
| HH:MM | [event] |
|
|
238
|
+
| ... | ... |
|
|
239
|
+
|
|
240
|
+
## Root Cause
|
|
241
|
+
|
|
242
|
+
[One paragraph. Specific, systemic, blameless.]
|
|
243
|
+
|
|
244
|
+
## Contributing Factors
|
|
245
|
+
|
|
246
|
+
- [factor 1]
|
|
247
|
+
- [factor 2]
|
|
248
|
+
- [factor 3]
|
|
249
|
+
|
|
250
|
+
## What Went Well
|
|
251
|
+
|
|
252
|
+
- [thing 1 — e.g. alert fired within 2 minutes]
|
|
253
|
+
- [thing 2 — e.g. rollback completed in 4 minutes]
|
|
254
|
+
- [thing 3]
|
|
255
|
+
|
|
256
|
+
## What Went Poorly
|
|
257
|
+
|
|
258
|
+
- [thing 1 — e.g. no runbook for this failure mode]
|
|
259
|
+
- [thing 2]
|
|
260
|
+
|
|
261
|
+
## Action Items
|
|
262
|
+
|
|
263
|
+
| # | Action | Category | Owner | Due |
|
|
264
|
+
|---|---|---|---|---|
|
|
265
|
+
| 1 | [action] | Prevention | [owner] | [date] |
|
|
266
|
+
| 2 | [action] | Detection | [owner] | [date] |
|
|
267
|
+
| 3 | [action] | Response | [owner] | [date] |
|
|
268
|
+
|
|
269
|
+
## Lessons Learned
|
|
270
|
+
|
|
271
|
+
[2–4 sentences summarizing the key takeaways for the team and organization.
|
|
272
|
+
What does this incident teach us about our system, processes, or culture?]
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
______________________________________________________________________
|
|
276
|
+
|
|
277
|
+
## Output
|
|
278
|
+
|
|
279
|
+
```text
|
|
280
|
+
Incident Analysis Complete
|
|
281
|
+
══════════════════════════
|
|
282
|
+
|
|
283
|
+
Incident: [ID / title]
|
|
284
|
+
Severity: [P0 | P1 | P2]
|
|
285
|
+
Duration: [N hours N minutes]
|
|
286
|
+
Root cause: [one-line summary]
|
|
287
|
+
|
|
288
|
+
Contributing factors: [N identified]
|
|
289
|
+
Action items: [N total — N prevention, N detection, N response]
|
|
290
|
+
|
|
291
|
+
Post-mortem written: docs/postmortems/YYYY-MM-DD-<slug>.md
|
|
292
|
+
Status: [Draft — ready for team review]
|
|
293
|
+
```
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: inspect
|
|
2
|
+
version: 1.0.2
|
|
3
|
+
description: |
|
|
4
|
+
Read-only verification audit. Runs baseline plus optional extended checks,
|
|
5
|
+
produces severity-ranked findings, and makes no code or commit changes.
|
|
6
|
+
Use when asked to "inspect", "assess", "check without fixing", or
|
|
7
|
+
"what's wrong with this" before deciding whether to run verify fix loops.
|
|
8
|
+
argument-hint: '[component or service to inspect]'
|
|
9
|
+
|
|
10
|
+
license: MIT
|
|
11
|
+
compatibility: Requires a skills-compatible agent with repository file access and terminal command execution when needed.
|
|
12
|
+
metadata:
|
|
13
|
+
owner: vstack
|
|
14
|
+
maturity: stable
|
|
15
|
+
user-invocable: true
|
|
16
|
+
disable-model-invocation: false
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
{{SKILL_CONTEXT}}
|
|
2
|
+
|
|
3
|
+
{{BASE_BRANCH}}
|
|
4
|
+
|
|
5
|
+
# inspect - Read-Only Verification Audit
|
|
6
|
+
|
|
7
|
+
Run verification checks and report findings. Do not edit code, do not commit,
|
|
8
|
+
and do not fix anything.
|
|
9
|
+
|
|
10
|
+
Use `verify` when a fix loop is required.
|
|
11
|
+
|
|
12
|
+
## Out of scope
|
|
13
|
+
|
|
14
|
+
- Fixing issues (use `verify`)
|
|
15
|
+
- Architecture decisions (use `architecture`)
|
|
16
|
+
- Full security audit (use `security`)
|
|
17
|
+
- Performance profiling (use `performance`)
|
|
18
|
+
|
|
19
|
+
## Deliverable and artifact policy
|
|
20
|
+
|
|
21
|
+
- Primary deliverable: `docs/test-report.md`
|
|
22
|
+
- Baseline-first default: write final findings directly to `docs/test-report.md` on the feature branch.
|
|
23
|
+
- Optional WIP area for complex/uncertain efforts: `docs/delta/{id}/TESTING_DELTA.md`
|
|
24
|
+
- Before merge: consolidate any blocking findings and final verdict into baseline reports.
|
|
25
|
+
|
|
26
|
+
______________________________________________________________________
|
|
27
|
+
|
|
28
|
+
## Step 0: Scope
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
Report only. No edits. No commits.
|
|
32
|
+
If critical issues are found, recommend `verify`.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
______________________________________________________________________
|
|
36
|
+
|
|
37
|
+
## Step 1: Baseline Checks
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
[ -f package.json ] && (npm run lint 2>/dev/null || true)
|
|
41
|
+
[ -f tsconfig.json ] && npx tsc --noEmit 2>/dev/null || true
|
|
42
|
+
[ -f pyproject.toml ] && (ruff check . 2>/dev/null || true)
|
|
43
|
+
[ -f pyproject.toml ] && (mypy . 2>/dev/null || pyright . 2>/dev/null || true)
|
|
44
|
+
[ -f go.mod ] && (go vet ./... 2>/dev/null || true)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
{{RUN_TESTS}}
|
|
48
|
+
|
|
49
|
+
______________________________________________________________________
|
|
50
|
+
|
|
51
|
+
## Step 2: Extended Checks (when present)
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Integration
|
|
55
|
+
[ -f package.json ] && npm run test:integration 2>/dev/null || true
|
|
56
|
+
[ -f pyproject.toml ] && python -m pytest -m integration -v 2>/dev/null || true
|
|
57
|
+
[ -f go.mod ] && go test -run Integration ./... 2>/dev/null || true
|
|
58
|
+
|
|
59
|
+
# Contract
|
|
60
|
+
[ -f openapi.yaml ] && npx @redocly/cli lint openapi.yaml 2>/dev/null || true
|
|
61
|
+
[ -n "$(find . -name '*.proto' 2>/dev/null | head -1)" ] && buf lint 2>/dev/null || true
|
|
62
|
+
|
|
63
|
+
# Lightweight vulnerability gate
|
|
64
|
+
[ -f package.json ] && npm audit --audit-level=high 2>/dev/null || true
|
|
65
|
+
[ -f pyproject.toml ] && pip-audit 2>/dev/null || true
|
|
66
|
+
[ -f go.mod ] && govulncheck ./... 2>/dev/null || true
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 2.1 Observability & Reliability Checks
|
|
70
|
+
|
|
71
|
+
Confirm for changed paths:
|
|
72
|
+
|
|
73
|
+
- Structured logs exist for key state transitions and failures.
|
|
74
|
+
- Metrics cover latency, error rate, and saturation for impacted services.
|
|
75
|
+
- Trace propagation exists across service boundaries where applicable.
|
|
76
|
+
- Alerts/runbooks exist for high-severity failure modes.
|
|
77
|
+
|
|
78
|
+
______________________________________________________________________
|
|
79
|
+
|
|
80
|
+
## Step 3: Report
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
## Inspection Report - [component/repo] - [date]
|
|
84
|
+
|
|
85
|
+
### Summary
|
|
86
|
+
- tests: [X pass / Y fail / Z skip]
|
|
87
|
+
- issues: [N critical / N high / N medium / N low]
|
|
88
|
+
|
|
89
|
+
### Critical
|
|
90
|
+
1. [issue] - [file:line] - [evidence]
|
|
91
|
+
|
|
92
|
+
### High
|
|
93
|
+
1. [issue] - [file:line] - [recommended fix]
|
|
94
|
+
|
|
95
|
+
### Medium
|
|
96
|
+
1. [issue] - [file:line] - [recommended fix]
|
|
97
|
+
|
|
98
|
+
### Low
|
|
99
|
+
1. [issue] - [notes]
|
|
100
|
+
|
|
101
|
+
### Recommendation
|
|
102
|
+
[SHIP-READY | USE VERIFY FIX LOOP | NEEDS ARCH/DESIGN REVIEW]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
______________________________________________________________________
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: migrate
|
|
2
|
+
version: 1.0.1
|
|
3
|
+
description: |
|
|
4
|
+
Database migration review and authoring. Covers forwards/backwards compatibility,
|
|
5
|
+
zero-downtime strategies, rollback plans, data integrity, and index safety.
|
|
6
|
+
Use when asked to "write a migration", "review this migration", "is this
|
|
7
|
+
migration safe?", or "zero-downtime schema change". Proactively suggest before
|
|
8
|
+
any DDL change ships to production.
|
|
9
|
+
argument-hint: '[migration file or schema change to review]'
|
|
10
|
+
|
|
11
|
+
license: MIT
|
|
12
|
+
compatibility: Requires a skills-compatible agent with repository file access and terminal command execution when needed.
|
|
13
|
+
metadata:
|
|
14
|
+
owner: vstack
|
|
15
|
+
maturity: stable
|
|
16
|
+
user-invocable: true
|
|
17
|
+
disable-model-invocation: false
|