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.
Files changed (119) hide show
  1. vstack/__init__.py +5 -0
  2. vstack/__main__.py +5 -0
  3. vstack/_templates/agents/_partials/agent-skill-boundary.md +5 -0
  4. vstack/_templates/agents/architect/config.yaml +38 -0
  5. vstack/_templates/agents/architect/template.md +84 -0
  6. vstack/_templates/agents/designer/config.yaml +36 -0
  7. vstack/_templates/agents/designer/template.md +99 -0
  8. vstack/_templates/agents/engineer/config.yaml +36 -0
  9. vstack/_templates/agents/engineer/template.md +88 -0
  10. vstack/_templates/agents/product/config.yaml +37 -0
  11. vstack/_templates/agents/product/template.md +87 -0
  12. vstack/_templates/agents/release/config.yaml +35 -0
  13. vstack/_templates/agents/release/template.md +86 -0
  14. vstack/_templates/agents/tester/config.yaml +41 -0
  15. vstack/_templates/agents/tester/template.md +90 -0
  16. vstack/_templates/instructions/git/config.yaml +4 -0
  17. vstack/_templates/instructions/git/template.md +36 -0
  18. vstack/_templates/instructions/python/config.yaml +4 -0
  19. vstack/_templates/instructions/python/template.md +37 -0
  20. vstack/_templates/prompts/code-review/config.yaml +10 -0
  21. vstack/_templates/prompts/code-review/template.md +39 -0
  22. vstack/_templates/skills/_partials/base-branch.md +8 -0
  23. vstack/_templates/skills/_partials/observability-checklist.md +36 -0
  24. vstack/_templates/skills/_partials/run-tests.md +22 -0
  25. vstack/_templates/skills/_partials/skill-context.md +21 -0
  26. vstack/_templates/skills/adr/config.yaml +17 -0
  27. vstack/_templates/skills/adr/template.md +167 -0
  28. vstack/_templates/skills/analyse/config.yaml +16 -0
  29. vstack/_templates/skills/analyse/template.md +188 -0
  30. vstack/_templates/skills/architecture/config.yaml +18 -0
  31. vstack/_templates/skills/architecture/template.md +213 -0
  32. vstack/_templates/skills/cicd/config.yaml +16 -0
  33. vstack/_templates/skills/cicd/template.md +169 -0
  34. vstack/_templates/skills/code-review/config.yaml +16 -0
  35. vstack/_templates/skills/code-review/template.md +180 -0
  36. vstack/_templates/skills/concise/config.yaml +16 -0
  37. vstack/_templates/skills/concise/template.md +128 -0
  38. vstack/_templates/skills/consult/config.yaml +18 -0
  39. vstack/_templates/skills/consult/template.md +195 -0
  40. vstack/_templates/skills/container/config.yaml +17 -0
  41. vstack/_templates/skills/container/template.md +122 -0
  42. vstack/_templates/skills/debug/config.yaml +16 -0
  43. vstack/_templates/skills/debug/template.md +247 -0
  44. vstack/_templates/skills/dependency/config.yaml +18 -0
  45. vstack/_templates/skills/dependency/template.md +293 -0
  46. vstack/_templates/skills/design/config.yaml +16 -0
  47. vstack/_templates/skills/design/template.md +231 -0
  48. vstack/_templates/skills/docs/config.yaml +17 -0
  49. vstack/_templates/skills/docs/template.md +128 -0
  50. vstack/_templates/skills/explore/config.yaml +17 -0
  51. vstack/_templates/skills/explore/template.md +188 -0
  52. vstack/_templates/skills/guardrails/config.yaml +16 -0
  53. vstack/_templates/skills/guardrails/template.md +45 -0
  54. vstack/_templates/skills/incident/config.yaml +17 -0
  55. vstack/_templates/skills/incident/template.md +293 -0
  56. vstack/_templates/skills/inspect/config.yaml +16 -0
  57. vstack/_templates/skills/inspect/template.md +105 -0
  58. vstack/_templates/skills/migrate/config.yaml +17 -0
  59. vstack/_templates/skills/migrate/template.md +298 -0
  60. vstack/_templates/skills/onboard/config.yaml +18 -0
  61. vstack/_templates/skills/onboard/template.md +289 -0
  62. vstack/_templates/skills/openapi/config.yaml +17 -0
  63. vstack/_templates/skills/openapi/template.md +382 -0
  64. vstack/_templates/skills/performance/config.yaml +15 -0
  65. vstack/_templates/skills/performance/template.md +198 -0
  66. vstack/_templates/skills/pr/config.yaml +15 -0
  67. vstack/_templates/skills/pr/template.md +108 -0
  68. vstack/_templates/skills/refactor/config.yaml +18 -0
  69. vstack/_templates/skills/refactor/template.md +283 -0
  70. vstack/_templates/skills/release-notes/config.yaml +16 -0
  71. vstack/_templates/skills/release-notes/template.md +127 -0
  72. vstack/_templates/skills/requirements/config.yaml +17 -0
  73. vstack/_templates/skills/requirements/template.md +187 -0
  74. vstack/_templates/skills/security/config.yaml +17 -0
  75. vstack/_templates/skills/security/template.md +256 -0
  76. vstack/_templates/skills/verify/config.yaml +17 -0
  77. vstack/_templates/skills/verify/template.md +201 -0
  78. vstack/_templates/skills/vision/config.yaml +19 -0
  79. vstack/_templates/skills/vision/template.md +169 -0
  80. vstack/agents/__init__.py +5 -0
  81. vstack/agents/config.py +67 -0
  82. vstack/agents/constants.py +14 -0
  83. vstack/agents/generator.py +20 -0
  84. vstack/artifacts/__init__.py +17 -0
  85. vstack/artifacts/config.py +111 -0
  86. vstack/artifacts/constants.py +6 -0
  87. vstack/artifacts/generator.py +406 -0
  88. vstack/artifacts/models.py +55 -0
  89. vstack/artifacts/protocol.py +50 -0
  90. vstack/cli/__init__.py +3 -0
  91. vstack/cli/commands.py +596 -0
  92. vstack/cli/constants.py +33 -0
  93. vstack/cli/manifest.py +166 -0
  94. vstack/cli/parser.py +156 -0
  95. vstack/constants.py +84 -0
  96. vstack/frontmatter/__init__.py +8 -0
  97. vstack/frontmatter/parser.py +272 -0
  98. vstack/frontmatter/schema.py +142 -0
  99. vstack/frontmatter/serializer.py +208 -0
  100. vstack/instructions/__init__.py +5 -0
  101. vstack/instructions/config.py +21 -0
  102. vstack/instructions/constants.py +9 -0
  103. vstack/instructions/generator.py +13 -0
  104. vstack/main.py +71 -0
  105. vstack/models.py +35 -0
  106. vstack/prompts/__init__.py +5 -0
  107. vstack/prompts/config.py +21 -0
  108. vstack/prompts/constants.py +9 -0
  109. vstack/prompts/generator.py +13 -0
  110. vstack/skills/__init__.py +5 -0
  111. vstack/skills/config.py +58 -0
  112. vstack/skills/constants.py +17 -0
  113. vstack/skills/generator.py +20 -0
  114. vstack/skills/models.py +15 -0
  115. vstack-0.0.0.dist-info/METADATA +725 -0
  116. vstack-0.0.0.dist-info/RECORD +119 -0
  117. vstack-0.0.0.dist-info/WHEEL +4 -0
  118. vstack-0.0.0.dist-info/entry_points.txt +3 -0
  119. vstack-0.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,231 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ # design — API & Service Design
4
+
5
+ Produce a complete service or API design document from minimal input. The output
6
+ becomes the source of truth for implementation.
7
+
8
+ ## Out of scope
9
+
10
+ - Reviewing existing DX/ergonomics (use `consult`)
11
+ - Architecture review (use `architecture`)
12
+ - Implementation (engineering role)
13
+ - Contract compliance validation (use `verify` or `code-review`)
14
+
15
+ ______________________________________________________________________
16
+
17
+ ## Deliverable and artifact policy
18
+
19
+ - Primary deliverable: `docs/design/design.md`
20
+ - Additional deliverable when user-facing scope: `docs/design/ux.md`
21
+ - Baseline-first default: write final design decisions directly to `docs/design/*.md` on the feature branch.
22
+ - Optional WIP area for complex/uncertain efforts: `docs/delta/{id}/DESIGN_DELTA.md`
23
+ - Before merge: consolidate any delta draft into baseline design docs.
24
+
25
+ ______________________________________________________________________
26
+
27
+ ## Step 0: Understand the Domain
28
+
29
+ > **Question:** What are we designing?
30
+ > **Options:**
31
+ > A) REST API for a new service
32
+ > B) gRPC service / Protobuf schema
33
+ > C) Event-driven API (AsyncAPI / Kafka topics)
34
+ > D) Library / SDK public interface
35
+ > E) Internal service interface (service-to-service)
36
+ > **Default if no response:** A
37
+
38
+ Gather context:
39
+
40
+ ```bash
41
+ # Existing code/contracts
42
+ find . -name 'openapi*' -o -name '*.proto' -o -name 'asyncapi*' 2>/dev/null | head -5
43
+ ```
44
+
45
+ ______________________________________________________________________
46
+
47
+ ## Step 1: Resource Design
48
+
49
+ For each resource/entity in the domain:
50
+
51
+ 1. **Name:** Plural noun (`users`, `orders`, `payments`)
52
+ 1. **Ownership:** Which service owns this resource?
53
+ 1. **Lifecycle:** What states can it be in?
54
+ 1. **Relationships:** What resources does it reference?
55
+
56
+ Produce an entity diagram. Prefer Mermaid when possible; use ASCII as a fallback
57
+ only when Mermaid support is unavailable or would reduce clarity.
58
+
59
+ ```mermaid
60
+ erDiagram
61
+ USER ||--o{ ORDER : places
62
+ USER {
63
+ string id
64
+ string email
65
+ string name
66
+ }
67
+ ORDER {
68
+ string id
69
+ string user_id
70
+ string status
71
+ }
72
+ ```
73
+
74
+ ______________________________________________________________________
75
+
76
+ ## Step 2: Endpoint Design
77
+
78
+ For each resource, define CRUD + custom actions:
79
+
80
+ ```yaml
81
+ # Example
82
+ GET /users # List (paginated)
83
+ POST /users # Create
84
+ GET /users/{id} # Get by ID
85
+ PATCH /users/{id} # Update (partial)
86
+ DELETE /users/{id} # Soft delete
87
+
88
+ # Custom actions (use sub-resources or action paths)
89
+ POST /users/{id}/activate # Non-CRUD action
90
+ POST /users/{id}/deactivate
91
+ ```
92
+
93
+ ______________________________________________________________________
94
+
95
+ ## Step 3: Request/Response Conventions
96
+
97
+ Define the standard envelope:
98
+
99
+ ```yaml
100
+ # Success response (single resource)
101
+ {
102
+ "data": { ... },
103
+ "meta": { "request_id": "...", "version": "v1" }
104
+ }
105
+ # Success response (collection)
106
+ {
107
+ "data": [ ... ],
108
+ "pagination": {
109
+ "cursor": "...",
110
+ "has_next": true,
111
+ "total": 1000
112
+ },
113
+ "meta": { "request_id": "...", "version": "v1" }
114
+ }
115
+
116
+ # Error response
117
+ {
118
+ "error": {
119
+ "code": "VALIDATION_FAILED",
120
+ "message": "Request validation failed",
121
+ "details": [
122
+ { "field": "email", "issue": "Invalid email format" }
123
+ ]
124
+ },
125
+ "meta": { "request_id": "...", "version": "v1" }
126
+ }
127
+ ```
128
+
129
+ ______________________________________________________________________
130
+
131
+ ## Step 4: Error Code Taxonomy
132
+
133
+ Define a machine-readable error code taxonomy:
134
+
135
+ ```text
136
+ # Auth errors
137
+ UNAUTHENTICATED — No valid credentials provided
138
+ UNAUTHORIZED — Credentials valid but permission denied
139
+ TOKEN_EXPIRED — JWT or session token has expired
140
+ RATE_LIMITED — Too many requests
141
+
142
+ # Validation errors
143
+ VALIDATION_FAILED — Request body/params failed validation
144
+ INVALID_FORMAT — Field format invalid (e.g., not a valid UUID)
145
+ MISSING_REQUIRED — Required field absent
146
+ CONSTRAINT_VIOLATED — Business constraint violated
147
+
148
+ # Resource errors
149
+ NOT_FOUND — Resource doesn't exist
150
+ CONFLICT — Resource state conflict (e.g., duplicate)
151
+ GONE — Resource permanently deleted
152
+
153
+ # System errors
154
+ INTERNAL_ERROR — Unexpected server error (don't expose details)
155
+ DEPENDENCY_ERROR — Upstream service failure
156
+ UNAVAILABLE — Service temporarily unavailable
157
+ ```
158
+
159
+ ______________________________________________________________________
160
+
161
+ ## Step 5: Versioning & Contract Discipline
162
+
163
+ Define the versioning approach:
164
+
165
+ ```text
166
+ Versioning: URL path prefix (/v1/, /v2/)
167
+ Breaking change policy: 12-month minimum support after deprecation
168
+ Deprecation process:
169
+ 1. Add Deprecation header with sunset date
170
+ 2. Add X-API-Warn header with migration path
171
+ 3. Update docs with migration guide
172
+ 4. Remove version only after sunset date
173
+ ```
174
+
175
+ ### API Contract Checklist
176
+
177
+ - [ ] OpenAPI / AsyncAPI spec updated for any new or changed endpoints
178
+ - [ ] Breaking changes flagged (field removal, type change, required→optional, enum value removal)
179
+ - [ ] Backward-compatible changes documented (new optional fields, new enum values)
180
+ - [ ] Error response envelopes consistent with existing API conventions
181
+ - [ ] Pagination contract consistent (cursor vs offset, envelope shape)
182
+ - [ ] Rate limiting headers documented if applicable
183
+ - [ ] Authentication/authorization contracts documented
184
+ - [ ] Semver bump reflects compatibility level:
185
+ - PATCH → bug fix, no contract change
186
+ - MINOR → new optional fields, backward compatible
187
+ - MAJOR → breaking change
188
+
189
+ ______________________________________________________________________
190
+
191
+ ## Step 6: Authentication & Authorization
192
+
193
+ ```text
194
+ Auth mechanism: Bearer token (JWT)
195
+ Token lifecycle: Access (15min) + Refresh (30 days)
196
+ Token claims: user_id, roles[], tenant_id
197
+ Authorization model: RBAC with per-resource checks
198
+ ```
199
+
200
+ ______________________________________________________________________
201
+
202
+ ## Step 7: Produce the Design Document
203
+
204
+ Output a complete design document to `docs/design/design.md` or `openapi.yaml`:
205
+
206
+ ```markdown
207
+ # API Design — [Service Name]
208
+
209
+ ## Overview
210
+ [One paragraph purpose]
211
+
212
+ ## Resources
213
+ [Entity diagram + table]
214
+
215
+ ## Endpoints
216
+ [Endpoint table]
217
+
218
+ ## Conventions
219
+ [Request/response envelope, error codes, pagination]
220
+
221
+ ## Versioning
222
+ [Strategy and policy]
223
+
224
+ ## Authentication
225
+ [Auth flow and token lifecycle]
226
+
227
+ ## Security
228
+ [Input validation, rate limiting, CORS policy]
229
+ ```
230
+
231
+ ______________________________________________________________________
@@ -0,0 +1,17 @@
1
+ name: docs
2
+ version: 1.0.2
3
+ description: |
4
+ Post-release documentation alignment. Updates README, API docs, migration
5
+ guides, and related docs to match shipped behavior. Does not own release-note
6
+ generation or CHANGELOG updates.
7
+ Use after release or deploy, or when asked to "update docs", "align
8
+ documentation", or "refresh README/API docs".
9
+ argument-hint: '[release or change to document]'
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
@@ -0,0 +1,128 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ {{BASE_BRANCH}}
4
+
5
+ # docs — Post-Release Documentation Update
6
+
7
+ Update all documentation to match what was just shipped. Report and write; do not
8
+ change source code.
9
+
10
+ ## Out of scope
11
+
12
+ - Code changes or bug fixes (use `verify` or `debug`)
13
+ - Creating the PR (use `pr`)
14
+ - Generating release notes (use `release-notes`)
15
+ - Updating `CHANGELOG.md` (owned by `release-notes`)
16
+
17
+ ## Deliverable and artifact policy
18
+
19
+ - Primary deliverables: updated baseline documentation artifacts (for example `README.md`, API docs, migration guides)
20
+ - Baseline-first default: write final documentation updates directly to baseline docs on the feature branch.
21
+ - Optional WIP area for complex/uncertain efforts: `docs/delta/{id}/DOCS_DELTA.md`
22
+ - Before merge: consolidate any documentation delta notes into baseline docs.
23
+
24
+ ______________________________________________________________________
25
+
26
+ ## Step 0: Scope the Release
27
+
28
+ ```bash
29
+ # What changed in this release?
30
+ git log <base>..HEAD --oneline
31
+ git diff <base> --stat | head -30
32
+
33
+ # Current version
34
+ cat VERSION 2>/dev/null \
35
+ || node -p "require('./package.json').version" 2>/dev/null \
36
+ || echo "unknown"
37
+ ```
38
+
39
+ ______________________________________________________________________
40
+
41
+ ## Step 1: README
42
+
43
+ Review whether README needs updates:
44
+
45
+ ```bash
46
+ cat README.md 2>/dev/null | head -60
47
+ ```
48
+
49
+ Check:
50
+
51
+ - [ ] Installation instructions still accurate?
52
+ - [ ] "Getting started" example still works?
53
+ - [ ] Feature list reflects new capabilities?
54
+ - [ ] Any deprecated features removed from featured examples?
55
+ - [ ] Badges (version, CI status) still accurate?
56
+
57
+ ______________________________________________________________________
58
+
59
+ ## Step 2: API Documentation
60
+
61
+ If there's an OpenAPI / AsyncAPI spec:
62
+
63
+ ```bash
64
+ cat openapi.yaml 2>/dev/null | head -40 || true
65
+ ```
66
+
67
+ Check:
68
+
69
+ - [ ] Spec version matches VERSION?
70
+ - [ ] New endpoints documented?
71
+ - [ ] Changed endpoints updated?
72
+ - [ ] Deprecated endpoints marked with `deprecated: true`?
73
+ - [ ] Response examples accurate?
74
+
75
+ If there's generated API documentation (Swagger UI, Redoc, TypeDoc, Sphinx):
76
+
77
+ ```bash
78
+ npm run docs 2>/dev/null || make docs 2>/dev/null || true
79
+ ```
80
+
81
+ ______________________________________________________________________
82
+
83
+ ## Step 3: MIGRATIONS Guide (if applicable)
84
+
85
+ If this release contains breaking changes or migration steps:
86
+
87
+ - Create or update `MIGRATIONS.md` or `docs/migrations/vX.md`
88
+ - Document: why the change was made, what behavior changed, migration steps, code examples
89
+
90
+ ______________________________________________________________________
91
+
92
+ ## Step 4: Code Comments & ADRs
93
+
94
+ For significant architectural changes:
95
+
96
+ - Check if inline code comments reference outdated behavior
97
+
98
+ - Add an Architecture Decision Record in `docs/architecture/adr/` if a significant decision was made
99
+
100
+ (use the `adr` skill for the full ADR writing procedure)
101
+
102
+ ______________________________________________________________________
103
+
104
+ ## Step 5: Commit Documentation Updates
105
+
106
+ ```bash
107
+ git add README.md openapi.yaml docs/ 2>/dev/null || true
108
+ git commit -m "docs: update documentation for v$(cat VERSION 2>/dev/null || echo 'unknown')"
109
+ ```
110
+
111
+ ______________________________________________________________________
112
+
113
+ ## Summary
114
+
115
+ ```text
116
+ ## Documentation Update — v[VERSION] — [date]
117
+
118
+ Updated:
119
+ - [ ] README.md
120
+ - [ ] API spec (openapi.yaml)
121
+ - [ ] Migration guide (if breaking changes)
122
+ - [ ] ADR (if architectural decision)
123
+
124
+ Skipped (n/a):
125
+ - [ ] [reason]
126
+ ```
127
+
128
+ ______________________________________________________________________
@@ -0,0 +1,17 @@
1
+ name: explore
2
+ version: 1.0.2
3
+ description: |
4
+ Repository and system discovery. Maps the architecture, understands the
5
+ codebase, identifies technical debt, and produces a structured onboarding
6
+ summary. Use at the start of any engagement with an unfamiliar codebase,
7
+ when asked to "understand this codebase", "map the architecture", "explore
8
+ the repo", or "what does this service do?".
9
+ argument-hint: '[repository or system to explore]'
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
@@ -0,0 +1,188 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ # explore — Codebase & Architecture Discovery
4
+
5
+ Map an unfamiliar codebase and produce a structured onboarding summary.
6
+ Report findings; do not change code.
7
+
8
+ ## Out of scope
9
+
10
+ - Fixing issues found during exploration (use `debug` or `verify`)
11
+ - Architecture recommendations (use `architecture`)
12
+ - Performance analysis (use `performance` or `analyse`)
13
+
14
+ ______________________________________________________________________
15
+
16
+ ## Phase 1: Project Overview
17
+
18
+ ```bash
19
+ # Identify project type and tech stack
20
+ ls -la
21
+ cat README.md 2>/dev/null | head -60 || cat README.rst 2>/dev/null | head -60 || true
22
+ cat package.json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print('Name:', d.get('name'), '| Version:', d.get('version'), '| Main:', d.get('main',''))" 2>/dev/null || true
23
+ cat pyproject.toml 2>/dev/null | head -20 || true
24
+ cat go.mod 2>/dev/null | head -10 || true
25
+ cat Cargo.toml 2>/dev/null | head -10 || true
26
+ ```
27
+
28
+ Record:
29
+
30
+ - **Project name and purpose**
31
+ - **Tech stack** (language, framework, runtime)
32
+ - **Project type** (API service, library, CLI, worker, monorepo)
33
+
34
+ ______________________________________________________________________
35
+
36
+ ## Phase 2: Directory Structure
37
+
38
+ ```bash
39
+ # Top-level structure
40
+ find . -maxdepth 3 -not -path '*/node_modules/*' -not -path '*/.git/*' \
41
+ -not -path '*/vendor/*' -not -path '*/__pycache__/*' -not -path '*/dist/*' \
42
+ -not -path '*/.venv/*' | sort | head -80
43
+ ```
44
+
45
+ Identify:
46
+
47
+ - Where source code lives (`src/`, `lib/`, `pkg/`, top-level)
48
+ - Where tests live (`test/`, `tests/`, `spec/`, `__tests__/`)
49
+ - Where configs live (`config/`, `.env*`, `*config.yaml`)
50
+ - CI/CD configuration (`.github/workflows/`, `.gitlab-ci.yml`, etc.)
51
+ - Infrastructure code (`k8s/`, `terraform/`, `docker-compose.yml`)
52
+
53
+ ______________________________________________________________________
54
+
55
+ ## Phase 3: Dependencies & External Services
56
+
57
+ ```bash
58
+ # Dependency overview
59
+ cat package.json 2>/dev/null | python3 -c "
60
+ import sys, json
61
+ d = json.load(sys.stdin)
62
+ deps = {**d.get('dependencies',{}), **d.get('devDependencies',{})}
63
+ print('Dependencies:', len(deps))
64
+ for k,v in list(deps.items())[:20]: print(f' {k}: {v}')
65
+ " 2>/dev/null || true
66
+
67
+ cat pyproject.toml 2>/dev/null | grep -A 20 '\[tool.poetry.dependencies\]' | head -25 || true
68
+ cat go.mod 2>/dev/null | grep -E '^require|^\t' | head -20 || true
69
+
70
+ # External services referenced
71
+ grep -r -E 'postgres|mysql|redis|mongodb|kafka|rabbitmq|elasticsearch|dynamodb|s3' \
72
+ --include='*.ts' --include='*.py' --include='*.go' --include='*.yaml' --include='*.env*' \
73
+ --exclude-dir=node_modules --exclude-dir=vendor . 2>/dev/null | grep -v test | head -20
74
+ ```
75
+
76
+ ______________________________________________________________________
77
+
78
+ ## Phase 4: API & Service Contracts
79
+
80
+ ```bash
81
+ # Check for API spec files
82
+ find . -name 'openapi*.yaml' -o -name 'openapi*.json' -o -name 'swagger*.yaml' \
83
+ -o -name '*.proto' -o -name 'asyncapi*.yaml' 2>/dev/null | head -10
84
+
85
+ # Check for route definitions
86
+ grep -r -n '@app.route\|router\.\|@Get\|@Post\|path=' \
87
+ --include='*.ts' --include='*.py' --include='*.go' \
88
+ --exclude-dir=node_modules . 2>/dev/null | head -30
89
+ ```
90
+
91
+ ______________________________________________________________________
92
+
93
+ ## Phase 5: Test Infrastructure
94
+
95
+ {{RUN_TESTS}}
96
+
97
+ ```bash
98
+ # Test count and coverage setup
99
+ find . -name '*.test.*' -o -name '*_test.*' -o -name '*spec.*' \
100
+ --exclude-dir=node_modules 2>/dev/null | wc -l
101
+
102
+ # Coverage config
103
+ cat .nycrc 2>/dev/null || cat vitest.config.* 2>/dev/null | head -20 || \
104
+ cat pytest.ini 2>/dev/null | head -20 || true
105
+ ```
106
+
107
+ ______________________________________________________________________
108
+
109
+ ## Phase 6: CI/CD Pipeline
110
+
111
+ ```bash
112
+ # CI config
113
+ ls .github/workflows/ 2>/dev/null | head -10
114
+ cat .github/workflows/*.yml 2>/dev/null | head -80 || true
115
+ cat .gitlab-ci.yml 2>/dev/null | head -60 || true
116
+ ```
117
+
118
+ ______________________________________________________________________
119
+
120
+ ## Phase 7: Technical Debt & Health
121
+
122
+ ```bash
123
+ # Check for TODO/FIXME/HACK comments
124
+ grep -r -n "TODO\|FIXME\|HACK\|XXX\|DEPRECATED\|BUG" \
125
+ --include='*.ts' --include='*.py' --include='*.go' \
126
+ --exclude-dir=node_modules . 2>/dev/null | head -30
127
+
128
+ # Check for TODOS.md
129
+ cat TODOS.md 2>/dev/null | head -40 || true
130
+ ```
131
+
132
+ ______________________________________________________________________
133
+
134
+ ## Discovery Report
135
+
136
+ Produce a structured summary:
137
+
138
+ ```text
139
+ ## Discovery Report — [project name] — [date]
140
+
141
+ ### Overview
142
+ Purpose: [one paragraph]
143
+ Type: [API service / library / CLI / worker / ...]
144
+ Stack: [language, framework, runtime versions]
145
+
146
+ ### Architecture
147
+ [Mermaid diagram of service topology or module structure when possible; ASCII fallback if needed]
148
+
149
+ ### Data Stores
150
+
151
+ - [Database]: [what it stores, ORM/driver used]
152
+ - [Cache]: [what is cached, TTL strategy]
153
+
154
+ ### Key External Dependencies
155
+
156
+ - [Service A]: [purpose, auth method]
157
+ - [Service B]: [purpose]
158
+
159
+ ### API Surface
160
+
161
+ [Summarize endpoints or exported functions]
162
+
163
+ ### Test Coverage
164
+
165
+ - Unit tests: [Y/N, count, coverage %]
166
+ - Integration tests: [Y/N]
167
+ - Contract tests: [Y/N]
168
+
169
+ ### CI/CD
170
+
171
+ - CI: [GitHub Actions/GitLab CI/etc]
172
+ - Deploy target: [Fly.io/Render/K8s/etc]
173
+ - Release process: [manual/automated]
174
+
175
+ ### Technical Debt
176
+
177
+ - [Key items from TODOS.md or code comments]
178
+
179
+ ### Onboarding Notes
180
+
181
+ - How to run locally: [command]
182
+ - How to run tests: [command]
183
+ - Key config: [env vars]
184
+ - Gotchas: [anything that surprised me]
185
+
186
+ ```
187
+
188
+ ______________________________________________________________________
@@ -0,0 +1,16 @@
1
+ name: guardrails
2
+ version: 1.0.2
3
+ description: |
4
+ Activate safety guardrails for the current session. Before any destructive
5
+ command (rm -rf, DROP TABLE, git push --force, git reset --hard, kubectl delete,
6
+ production config changes, database migrations) a confirmation is required.
7
+ Use when asked to "be careful", "enable guardrails", or "careful mode".
8
+ disable-model-invocation: true
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
+ argument-hint: '[task]'
16
+ user-invocable: true
@@ -0,0 +1,45 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ # guardrails — Safety Mode
4
+
5
+ Activate careful mode for this session. Two behaviors are now enabled.
6
+
7
+ ## Out of scope
8
+
9
+ - Code review or security audit (use `code-review` or `security`)
10
+
11
+ ______________________________________________________________________
12
+
13
+ ## Behavior 1: Careful Mode (always active after invoking this skill)
14
+
15
+ **Before executing any of the following commands, get explicit confirmation:**
16
+
17
+ | Command | Risk | What to confirm |
18
+ | ------------------------------ | ---------------------------- | --------------------------- |
19
+ | `rm -rf` | Permanent file deletion | Files to delete |
20
+ | `DROP TABLE` / `DROP DATABASE` | Permanent data loss | Table/database name |
21
+ | `git push --force` | Overwrites remote history | Branch and remote |
22
+ | `git reset --hard` | Discards local changes | What will be lost |
23
+ | `git clean -fd` | Removes untracked files | Files to remove |
24
+ | `kubectl delete` | Removes Kubernetes resources | Resource name and namespace |
25
+ | `fly destroy` | Destroys Fly.io app | App name |
26
+ | `docker rm -f` | Forcefully removes container | Container |
27
+ | Any `--force` flag | Bypasses safety check | Why force is needed |
28
+ | Production config changes | Affects live traffic | Explicit approval |
29
+ | Database migrations | May modify data schema | Review migration SQL |
30
+
31
+ **Procedure for each dangerous command:**
32
+
33
+ 1. Stop.
34
+ 1. Explain exactly what the command does and what will be permanently lost.
35
+ 1. Ask for explicit confirmation.
36
+ 1. Only proceed if the user says yes.
37
+ 1. Never use workarounds to avoid this confirmation.
38
+
39
+ ______________________________________________________________________
40
+
41
+ ## How to Deactivate
42
+
43
+ Explicitly ask to "disable guardrails".
44
+
45
+ ______________________________________________________________________
@@ -0,0 +1,17 @@
1
+ name: incident
2
+ version: 1.0.1
3
+ description: |
4
+ Incident analysis and post-mortem writing. Guides a structured investigation
5
+ from timeline reconstruction through root cause identification to a blameless
6
+ post-mortem document with action items. Use when asked to "write a post-mortem",
7
+ "incident review", "root cause analysis for this outage", "what went wrong?",
8
+ or "blameless post-mortem". Produces a docs/postmortems/{date}-{slug}.md.
9
+ argument-hint: '[incident or outage to analyse and document]'
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