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,187 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ # requirements — Requirements Gathering & Documentation
4
+
5
+ Clarify and document what must be built before engineering starts. Produce a
6
+ `docs/product/requirements.md` that downstream roles (architect, designer, engineer) can
7
+ work from.
8
+
9
+ ## Out of scope
10
+
11
+ - Technical design and architecture decisions (use `architecture`)
12
+ - API/service design (use `design`)
13
+ - Roadmap and milestone planning (product role artifact)
14
+ - Implementation (engineering role)
15
+
16
+ ## Deliverable and artifact policy
17
+
18
+ - Primary deliverable: `docs/product/requirements.md`
19
+ - Baseline-first default: write final requirements directly to `docs/product/requirements.md` on the feature branch.
20
+ - Optional WIP area for complex/uncertain intake: `docs/delta/{intake-id}/REQUIREMENTS_DELTA.md`
21
+ - Before merge: consolidate any required content from optional delta notes back into `docs/product/requirements.md`, then remove stale WIP notes.
22
+
23
+ ______________________________________________________________________
24
+
25
+ ## Step 0: Context
26
+
27
+ Read existing artifacts before asking questions:
28
+
29
+ ```bash
30
+ cat docs/product/vision.md 2>/dev/null || true
31
+ cat docs/product/requirements.md 2>/dev/null || true
32
+ cat docs/product/roadmap.md 2>/dev/null || true
33
+ cat README.md 2>/dev/null | head -40 || true
34
+ ```
35
+
36
+ Identify what's already known and what needs clarification.
37
+
38
+ ______________________________________________________________________
39
+
40
+ ## Step 1: Problem Statement
41
+
42
+ Clarify the core problem being solved:
43
+
44
+ > **Question:** Describe what you want to build and why.
45
+ >
46
+ > - What problem does this solve?
47
+ > - Who experiences this problem today?
48
+ > - What happens if we don't solve it?
49
+
50
+ Document:
51
+
52
+ ```text
53
+ ## Problem Statement
54
+ [One paragraph: root problem, who has it, impact of not solving it]
55
+ ```
56
+
57
+ ______________________________________________________________________
58
+
59
+ ## Step 2: Users & Stakeholders
60
+
61
+ Who uses or is affected by this?
62
+
63
+ | Role | Description | Primary need |
64
+ | ----------- | ----------- | ------------ |
65
+ | [User type] | | |
66
+
67
+ ______________________________________________________________________
68
+
69
+ ## Step 3: Functional Requirements
70
+
71
+ What must the system do? Use the format: "The system must [verb] [object] [condition/constraint]."
72
+
73
+ Ask for clarity on ambiguous areas:
74
+
75
+ > **Question:** Are there any specific behaviors or edge cases that are critical?
76
+
77
+ ```markdown
78
+ ## Functional Requirements
79
+
80
+ ### Must have (MVP)
81
+ - FR-01: The system must [...]
82
+ - FR-02: The system must [...]
83
+
84
+ ### Should have (desirable)
85
+ - FR-03: [...]
86
+
87
+ ### Won't have (explicitly out of scope)
88
+ - [State what will NOT be built in this iteration]
89
+ ```
90
+
91
+ ______________________________________________________________________
92
+
93
+ ## Step 4: Non-Functional Requirements
94
+
95
+ | Category | Requirement | Measurable target |
96
+ | ------------ | -------------- | ------------------------------------ |
97
+ | Performance | Response time | p99 < 500ms under X rps |
98
+ | Availability | Uptime | 99.9% (< 8.7h downtime/year) |
99
+ | Security | Auth | All endpoints require authentication |
100
+ | Scalability | Load | Handle up to N concurrent users |
101
+ | Compliance | Data residency | Data stored in [region] |
102
+
103
+ Ask:
104
+
105
+ > **Question:** Are there any hard non-functional requirements (performance, security,
106
+ > compliance, data residency)?
107
+
108
+ ______________________________________________________________________
109
+
110
+ ## Step 5: Constraints & Assumptions
111
+
112
+ Document known constraints:
113
+
114
+ ```markdown
115
+ ## Constraints
116
+ - Budget: [if relevant]
117
+ - Timeline: [hard deadline if any]
118
+ - Technology: [must use X, cannot use Y]
119
+ - Team: [available skill set]
120
+ - Existing systems: [must integrate with X]
121
+
122
+ ## Assumptions
123
+ - [Things assumed true that could invalidate requirements if wrong]
124
+ ```
125
+
126
+ ______________________________________________________________________
127
+
128
+ ## Step 6: Success Criteria
129
+
130
+ What does "done" look like? How do we know the requirements are met?
131
+
132
+ ```markdown
133
+ ## Success Criteria
134
+ - [ ] [Measurable outcome 1]
135
+ - [ ] [Measurable outcome 2]
136
+ - [ ] [Acceptance test: given X, when Y, then Z]
137
+ ```
138
+
139
+ ______________________________________________________________________
140
+
141
+ ## Step 7: Open Questions
142
+
143
+ List anything that is unclear and needs a decision before work begins:
144
+
145
+ ```markdown
146
+ ## Open Questions
147
+ - [ ] [Question] — Owner: [who decides] — Deadline: [when needed]
148
+ ```
149
+
150
+ ______________________________________________________________________
151
+
152
+ ## Output: requirements.md
153
+
154
+ Write all findings to `docs/product/requirements.md`:
155
+
156
+ ```markdown
157
+ # Requirements — [feature/project name]
158
+
159
+ **Status:** draft | reviewed | approved
160
+ **Date:** YYYY-MM-DD
161
+ **Author:** product role
162
+
163
+ ## Problem Statement
164
+ [...]
165
+
166
+ ## Users & Stakeholders
167
+ [table]
168
+
169
+ ## Functional Requirements
170
+ [...]
171
+
172
+ ## Non-Functional Requirements
173
+ [table]
174
+
175
+ ## Constraints & Assumptions
176
+ [...]
177
+
178
+ ## Success Criteria
179
+ [...]
180
+
181
+ ## Open Questions
182
+ [...]
183
+ ```
184
+
185
+ After writing, summarize what was decided so the architect role can start.
186
+
187
+ ______________________________________________________________________
@@ -0,0 +1,17 @@
1
+ name: security
2
+ version: 1.0.2
3
+ description: |
4
+ OWASP Top 10 + STRIDE security audit for APIs, services, and libraries.
5
+ Finds authentication bypasses, injection vulnerabilities, insecure configurations,
6
+ exposed secrets, dependency vulnerabilities, and broken access control.
7
+ Use when asked to "security audit", "security review", or "check for vulnerabilities".
8
+ Proactively suggest before any code ships to production.
9
+ argument-hint: '[component or service to audit]'
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,256 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ {{BASE_BRANCH}}
4
+
5
+ # security — Security Audit (OWASP Top 10 + STRIDE)
6
+
7
+ Perform a systematic security audit. No finding is too small. Report every issue
8
+ with severity, evidence, and specific remediation.
9
+
10
+ ## Out of scope
11
+
12
+ - Full code review for non-security issues (use `code-review`)
13
+ - Performance analysis (use `performance`)
14
+ - Architecture design (use `architecture`)
15
+ - Writing new features (engineering role)
16
+
17
+ ## Deliverable and artifact policy
18
+
19
+ - Primary deliverable: `docs/security-report.md`
20
+ - Baseline-first default: write final findings directly to `docs/security-report.md` on the feature branch.
21
+ - Optional WIP area for complex/uncertain efforts: `docs/delta/{id}/SECURITY_DELTA.md`
22
+ - Before merge: consolidate severity-ranked findings and mitigations into baseline security reports.
23
+
24
+ ## Audit Scope
25
+
26
+ Parse the user's request for scope:
27
+
28
+ - **Full audit:** All code in the repository
29
+ - **Diff audit:** Only changes since base branch (default on feature branches)
30
+ - **Dependency audit:** Only dependency vulnerabilities
31
+ - **Config audit:** Only infrastructure and configuration
32
+
33
+ ```bash
34
+ # Detect scope
35
+ CURRENT=$(git branch --show-current)
36
+ git diff <base> --stat 2>/dev/null | head -20 || true
37
+ ```
38
+
39
+ ______________________________________________________________________
40
+
41
+ ## Part 1: OWASP Top 10
42
+
43
+ ### A01: Broken Access Control
44
+
45
+ ```bash
46
+ # Look for authorization checks
47
+ grep -r -n "is_admin\|hasRole\|checkPermission\|authorize\|can(" \
48
+ --include='*.ts' --include='*.py' --include='*.go' --include='*.java' \
49
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build --exclude-dir=vendor . 2>/dev/null | head -30
50
+
51
+ # Look for endpoints missing auth
52
+ grep -r -n "@app.route\|router\.\|@Get\|@Post\|@Put\|@Delete\|@Patch" \
53
+ --include='*.ts' --include='*.py' --include='*.go' \
54
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | head -30
55
+ ```
56
+
57
+ Check:
58
+
59
+ - [ ] Every endpoint checks authentication AND authorization
60
+ - [ ] Authorization is per-resource, not just per-role
61
+ - [ ] No direct object reference without ownership check (IDOR)
62
+ - [ ] Admin endpoints protected by privilege check, not just auth
63
+ - [ ] JWT/token claims validated (expiry, issuer, audience)
64
+
65
+ ### A02: Cryptographic Failures
66
+
67
+ ```bash
68
+ # Find hardcoded secrets
69
+ grep -r -E '(password|secret|api_key|private_key|token)\s*[=:]\s*["\x27][^"\x27]{8,}' \
70
+ --include='*.ts' --include='*.py' --include='*.go' --include='*.yaml' --include='*.env' \
71
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build --exclude-dir=.git . 2>/dev/null | grep -v test | grep -v example
72
+
73
+ # Find weak crypto
74
+ grep -r -n "MD5\|SHA1\|DES\|RC4\|Math.random\|random.random" \
75
+ --include='*.ts' --include='*.py' --include='*.go' \
76
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | head -20
77
+ ```
78
+
79
+ Check:
80
+
81
+ - [ ] No secrets in source code (use secret manager)
82
+ - [ ] Passwords hashed with bcrypt/argon2/scrypt (not MD5/SHA1)
83
+ - [ ] TLS enforced for all network communication
84
+ - [ ] Cryptographic random for security-sensitive values
85
+ - [ ] Sensitive data encrypted at rest
86
+
87
+ ### A03: Injection
88
+
89
+ ```bash
90
+ # SQL injection risk
91
+ grep -r -n 'query\|execute\|raw\|f"' \
92
+ --include='*.py' --include='*.ts' --include='*.go' \
93
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | grep -E '"SELECT|"INSERT|"UPDATE|"DELETE|f".*sql' | head -20
94
+
95
+ # Command injection risk
96
+ grep -r -n 'exec\|subprocess\|shell=True\|execSync\|spawnSync' \
97
+ --include='*.py' --include='*.ts' --include='*.go' \
98
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | head -20
99
+ ```
100
+
101
+ Check:
102
+
103
+ - [ ] All database queries use parameterized queries / ORM
104
+ - [ ] No string concatenation in SQL
105
+ - [ ] System commands use argument arrays, not shell strings
106
+ - [ ] Template engines auto-escape output
107
+
108
+ ### A04: Insecure Design
109
+
110
+ - [ ] Threat model exists for the system?
111
+ - [ ] No security through obscurity
112
+ - [ ] Principle of least privilege in service-to-service auth
113
+ - [ ] Defense in depth — multiple layers, not single gate
114
+
115
+ ### A05: Security Misconfiguration
116
+
117
+ ```bash
118
+ # Check for debug/development modes
119
+ grep -r -n 'DEBUG\s*=\s*True\|debug:\s*true\|development\|NODE_ENV' \
120
+ --include='*.py' --include='*.ts' --include='*.yaml' --include='*.json' \
121
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | grep -v test | head -20
122
+
123
+ # Check for permissive CORS
124
+ grep -r -n 'cors\|CORS\|Access-Control-Allow-Origin' \
125
+ --include='*.ts' --include='*.py' --include='*.go' \
126
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | head -20
127
+ ```
128
+
129
+ Check:
130
+
131
+ - [ ] Debug mode disabled in production
132
+ - [ ] CORS restricted to known origins (not `*`)
133
+ - [ ] Error messages don't leak internal details
134
+ - [ ] Security headers set (HSTS, CSP, X-Frame-Options if applicable)
135
+ - [ ] Unnecessary features/endpoints disabled in production
136
+
137
+ ### A06: Vulnerable and Outdated Components
138
+
139
+ ```bash
140
+ # Dependency vulnerability scan
141
+ [ -f package.json ] && npm audit 2>/dev/null || true
142
+ [ -f pyproject.toml ] && pip-audit 2>/dev/null || safety check 2>/dev/null || true
143
+ [ -f go.mod ] && govulncheck ./... 2>/dev/null || true
144
+ [ -f Cargo.toml ] && cargo audit 2>/dev/null || true
145
+ [ -f pom.xml ] && mvn dependency-check:check 2>/dev/null || true
146
+ ```
147
+
148
+ ### A07: Identification and Authentication Failures
149
+
150
+ ```bash
151
+ # Check session/token implementation
152
+ grep -r -n 'jwt\|JWT\|session\|cookie\|token' \
153
+ --include='*.ts' --include='*.py' --include='*.go' \
154
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | grep -i 'expire\|expiry\|secret\|key' | head -20
155
+ ```
156
+
157
+ Check:
158
+
159
+ - [ ] Token expiry enforced
160
+ - [ ] Refresh token rotation implemented
161
+ - [ ] Logout invalidates tokens server-side
162
+ - [ ] Password reset tokens single-use and time-limited
163
+ - [ ] Multi-factor authentication for privileged operations (if applicable)
164
+
165
+ ### A08: Software and Data Integrity Failures
166
+
167
+ ```bash
168
+ # Check for unsigned dependencies
169
+ cat package-lock.json 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print('Integrity checks:', sum(1 for v in d.get('packages',{}).values() if v.get('integrity')))" 2>/dev/null || true
170
+ ```
171
+
172
+ Check:
173
+
174
+ - [ ] Dependencies pinned to specific versions with integrity hashes
175
+ - [ ] CI/CD pipeline integrity (no untrusted actions/orbs)
176
+ - [ ] Artifacts signed before distribution
177
+
178
+ ### A09: Security Logging and Monitoring Failures
179
+
180
+ ```bash
181
+ grep -r -n 'audit\|security_log\|auth.*log\|access.*log' \
182
+ --include='*.ts' --include='*.py' --include='*.go' \
183
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | head -20
184
+ ```
185
+
186
+ Check:
187
+
188
+ - [ ] Authentication events logged (success and failure)
189
+ - [ ] Authorization failure logged with user ID and resource
190
+ - [ ] Suspicious patterns produce alerts
191
+ - [ ] Logs protected from tampering
192
+ - [ ] PII not logged
193
+
194
+ ### A10: Server-Side Request Forgery (SSRF)
195
+
196
+ ```bash
197
+ grep -r -n 'fetch\|requests\.\|http\.get\|axios\|urllib' \
198
+ --include='*.ts' --include='*.py' --include='*.go' \
199
+ --exclude-dir=node_modules --exclude-dir=.venv --exclude-dir=venv --exclude-dir=env --exclude-dir=__pycache__ --exclude-dir=dist --exclude-dir=build . 2>/dev/null | grep -v test | head -20
200
+ ```
201
+
202
+ Check:
203
+
204
+ - [ ] URLs from user input are validated against allowlist
205
+ - [ ] Private network ranges blocked (169.254.0.0/16, 10.0.0.0/8, etc.)
206
+ - [ ] SSRF protection on any URL-fetching functionality
207
+
208
+ ______________________________________________________________________
209
+
210
+ ## Part 2: STRIDE Threat Model
211
+
212
+ For each new service/component, answer:
213
+
214
+ | Threat | Question | Mitigation in place? |
215
+ | -------------------------- | --------------------------------------------------------- | -------------------- |
216
+ | **Spoofing** | Can an attacker impersonate a legitimate user or service? | |
217
+ | **Tampering** | Can an attacker modify data in transit or at rest? | |
218
+ | **Repudiation** | Can actions be denied without audit trail? | |
219
+ | **Information Disclosure** | What sensitive data could leak? | |
220
+ | **Denial of Service** | Can the service be made unavailable? Rate limiting? | |
221
+ | **Elevation of Privilege** | Can a user gain admin access through normal flows? | |
222
+
223
+ ______________________________________________________________________
224
+
225
+ ## Audit Report
226
+
227
+ ```text
228
+ ## Security Audit Report — [service/repo] — [date]
229
+ Scope: [full/diff/dependency/config]
230
+
231
+ ### Critical Findings (immediate fix required)
232
+ 1. [Category] `path/to/file:line` — [Issue]
233
+ Evidence: [code snippet or behavior]
234
+ Remediation: [specific fix]
235
+ CVSS: [if applicable]
236
+
237
+ ### High Findings (fix before shipping)
238
+ ...
239
+
240
+ ### Medium Findings (fix in near-term)
241
+ ...
242
+
243
+ ### Low / Informational
244
+ ...
245
+
246
+ ### OWASP Coverage
247
+ [X/10 categories checked, N issues found]
248
+
249
+ ### Dependency Vulnerabilities
250
+ [X critical, Y high, Z medium]
251
+
252
+ ### Recommendation
253
+ [SHIP-READY / FIX CRITICALS / SECURITY REVIEW REQUIRED]
254
+ ```
255
+
256
+ ______________________________________________________________________
@@ -0,0 +1,17 @@
1
+ name: verify
2
+ version: 1.0.2
3
+ description: |
4
+ Verification fix-loop skill. Routes by mode (quick/standard/exhaustive), runs
5
+ targeted checks, fixes findings by severity, and re-verifies impacted paths.
6
+ Routes report-only requests to inspect and escalates deep security/performance
7
+ concerns to specialized skills. Use when asked to "verify", "fix failing checks",
8
+ "run QA with fixes", or "re-verify before shipping".
9
+ argument-hint: '[component or feature to verify]'
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,201 @@
1
+ {{SKILL_CONTEXT}}
2
+
3
+ {{BASE_BRANCH}}
4
+
5
+ # verify - Fix Loop Verification
6
+
7
+ Run a targeted verification fix loop:
8
+
9
+ 1. choose scope/mode,
10
+ 1. run checks,
11
+ 1. fix issues in priority order,
12
+ 1. re-run only impacted checks,
13
+ 1. report ship readiness.
14
+
15
+ Use `inspect` for read-only auditing.
16
+
17
+ ## Out of scope
18
+
19
+ - Architecture decisions (use `architecture`)
20
+ - Full security audit (use `security`)
21
+ - Performance benchmarking/profiling (use `performance`)
22
+ - New feature implementation outside verification fixes (engineering role)
23
+
24
+ ## Deliverable and artifact policy
25
+
26
+ - Primary deliverable: `docs/test-report.md`
27
+ - Additional deliverables when applicable: `docs/security-report.md`, `docs/performance-baseline.md`
28
+ - Baseline-first default: write final verification outcomes directly to baseline reports on the feature branch.
29
+ - Optional WIP area for complex/uncertain efforts: `docs/delta/{id}/VERIFY_DELTA.md`
30
+ - Before merge: consolidate final findings, severity, and ship-readiness verdict into baseline reports.
31
+
32
+ ______________________________________________________________________
33
+
34
+ ## Step 0: Route Mode
35
+
36
+ Classify first, then run one mode.
37
+
38
+ > **Question:** Which verify mode should be used?
39
+ > **Options:**
40
+ > A) quick - critical/high regressions only
41
+ > B) standard - default verification + fix loop
42
+ > C) exhaustive - broad verification and full fix sweep
43
+ > D) report-only - route to `inspect`
44
+ > **Default if no response:** B
45
+
46
+ If D, stop and route to `inspect`.
47
+
48
+ ______________________________________________________________________
49
+
50
+ ## Step 1: Scope and Safety
51
+
52
+ Parse user scope:
53
+
54
+ - Target: whole repo or specific component/path
55
+ - Tier: quick/standard/exhaustive
56
+ - Source: full branch diff or explicit path
57
+
58
+ Check working tree:
59
+
60
+ ```bash
61
+ git status --porcelain
62
+ ```
63
+
64
+ If dirty, ask before proceeding because verify may create multiple atomic fix commits.
65
+
66
+ Bootstrap test command:
67
+
68
+ {{RUN_TESTS}}
69
+
70
+ ______________________________________________________________________
71
+
72
+ ## Step 2: Baseline Checks (all modes)
73
+
74
+ Run baseline checks for the selected scope.
75
+
76
+ ### 2.1 Lint and Type
77
+
78
+ ```bash
79
+ [ -f package.json ] && (npm run lint 2>/dev/null || true)
80
+ [ -f tsconfig.json ] && npx tsc --noEmit 2>/dev/null || true
81
+ [ -f pyproject.toml ] && (ruff check . 2>/dev/null || true)
82
+ [ -f pyproject.toml ] && (mypy . 2>/dev/null || pyright . 2>/dev/null || true)
83
+ [ -f go.mod ] && (go vet ./... 2>/dev/null || true)
84
+ ```
85
+
86
+ ### 2.2 Unit Tests
87
+
88
+ {{RUN_TESTS}}
89
+
90
+ ______________________________________________________________________
91
+
92
+ ## Step 3: Conditional Checks by Mode
93
+
94
+ ### quick
95
+
96
+ - Run only failing or high-risk checks related to changed code
97
+ - Skip broad integration/contract/smoke unless directly impacted
98
+
99
+ ### standard
100
+
101
+ Run these when present:
102
+
103
+ ```bash
104
+ # Integration
105
+ [ -f package.json ] && npm run test:integration 2>/dev/null || true
106
+ [ -f pyproject.toml ] && python -m pytest -m integration -v 2>/dev/null || true
107
+ [ -f go.mod ] && go test -run Integration ./... 2>/dev/null || true
108
+
109
+ # Contract
110
+ [ -f openapi.yaml ] && npx @redocly/cli lint openapi.yaml 2>/dev/null || true
111
+ [ -n "$(find . -name '*.proto' 2>/dev/null | head -1)" ] && buf lint 2>/dev/null || true
112
+ ```
113
+
114
+ Also verify observability on impacted paths:
115
+
116
+ - Structured logs for critical transitions and errors
117
+ - Metrics for latency/error/saturation
118
+ - Trace propagation across service boundaries
119
+ - Alerts or runbooks for critical failure modes
120
+
121
+ ### exhaustive
122
+
123
+ Run standard checks plus:
124
+
125
+ ```bash
126
+ # Optional smoke checks if scripts exist
127
+ find . -name '*.smoke.*' -o -name '*smoke-test*' -o -name 'smoke.sh' 2>/dev/null | head -5
128
+
129
+ # Dependency vulnerability gate (lightweight only; full audit belongs to security)
130
+ [ -f package.json ] && npm audit --audit-level=high 2>/dev/null || true
131
+ [ -f pyproject.toml ] && pip-audit 2>/dev/null || true
132
+ [ -f go.mod ] && govulncheck ./... 2>/dev/null || true
133
+ ```
134
+
135
+ For exhaustive mode, require observability evidence (logs/metrics/traces/alerts) in the final report.
136
+
137
+ If deep security/performance concerns appear, stop and route to `security` or `performance`.
138
+
139
+ ______________________________________________________________________
140
+
141
+ ## Step 4: Triage
142
+
143
+ Classify findings:
144
+
145
+ | Severity | Examples |
146
+ | -------- | ------------------------------------------------------------------- |
147
+ | critical | test crashes, build breaks, data integrity/security regressions |
148
+ | high | contract violations, broken error handling, missing required checks |
149
+ | medium | flaky tests, non-critical behavior gaps |
150
+ | low | style and minor cleanups |
151
+
152
+ Fix policy:
153
+
154
+ - quick: critical + high
155
+ - standard: critical + high + medium
156
+ - exhaustive: all severities
157
+
158
+ ______________________________________________________________________
159
+
160
+ ## Step 5: Fix and Re-verify Loop
161
+
162
+ For each fixable issue in severity order:
163
+
164
+ 1. Reproduce and confirm root cause.
165
+ 1. Apply minimal fix.
166
+ 1. Commit atomically (`fix: ...`).
167
+ 1. Re-run only impacted checks first.
168
+ 1. If needed, run the relevant broader check suite.
169
+
170
+ If an issue implies architecture or design mismatch, stop and escalate.
171
+
172
+ ______________________________________________________________________
173
+
174
+ ## Step 6: Final Report
175
+
176
+ ```text
177
+ ## Verification Report - [component/repo] - [date]
178
+
179
+ selected_mode: [quick|standard|exhaustive]
180
+ scope: [path/component/full]
181
+
182
+ ### Summary
183
+ - tests: [X pass / Y fail / Z skip]
184
+ - issues found: [N critical / N high / N medium / N low]
185
+ - fixes applied: [N]
186
+ - deferred: [N]
187
+
188
+ ### Fixed Issues
189
+ 1. [issue] - [commit SHA]
190
+
191
+ ### Deferred Issues
192
+ 1. [issue] - [why deferred] - [owner]
193
+
194
+ ### Routed Follow-ups (if any)
195
+ - [security|performance|architecture|design] - [reason]
196
+
197
+ ### Ship Readiness
198
+ [READY TO SHIP | NEEDS FIXES | BLOCKED]
199
+ ```
200
+
201
+ ______________________________________________________________________
@@ -0,0 +1,19 @@
1
+ name: vision
2
+ version: 1.0.2
3
+ description: |
4
+ CEO/founder-mode plan review. Rethink the problem from first principles, validate
5
+ ambition and scope, challenge premises, find the 10x solution. Four modes:
6
+ SCOPE EXPANSION (dream big), SELECTIVE EXPANSION (hold scope + cherry-pick),
7
+ HOLD SCOPE (maximum rigor), SCOPE REDUCTION (strip to essentials).
8
+ Use when asked to "think bigger", "strategy review", "rethink this", or
9
+ "is this ambitious enough". Proactively suggest when a plan feels under-scoped
10
+ or when the user is questioning ambition.
11
+ argument-hint: '[plan or idea to review]'
12
+
13
+ license: MIT
14
+ compatibility: Requires a skills-compatible agent with repository file access and terminal command execution when needed.
15
+ metadata:
16
+ owner: vstack
17
+ maturity: stable
18
+ user-invocable: true
19
+ disable-model-invocation: false