@forwardimpact/pathway 0.1.0 → 0.3.0
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/app/commands/agent.js +119 -31
- package/app/commands/command-factory.js +3 -3
- package/app/commands/interview.js +14 -7
- package/app/commands/job.js +52 -33
- package/app/commands/progress.js +14 -7
- package/app/commands/serve.js +5 -0
- package/app/commands/stage.js +0 -10
- package/app/commands/track.js +5 -8
- package/app/components/builder.js +117 -30
- package/app/css/components/surfaces.css +16 -0
- package/app/formatters/agent/profile.js +30 -115
- package/app/formatters/agent/skill.js +23 -44
- package/app/formatters/behaviour/dom.js +3 -0
- package/app/formatters/behaviour/microdata.js +106 -0
- package/app/formatters/discipline/dom.js +28 -1
- package/app/formatters/discipline/microdata.js +117 -0
- package/app/formatters/discipline/shared.js +49 -8
- package/app/formatters/driver/dom.js +3 -0
- package/app/formatters/driver/microdata.js +91 -0
- package/app/formatters/grade/dom.js +5 -4
- package/app/formatters/grade/microdata.js +151 -0
- package/app/formatters/index.js +32 -1
- package/app/formatters/interview/shared.js +13 -8
- package/app/formatters/job/description.js +70 -81
- package/app/formatters/job/dom.js +40 -113
- package/app/formatters/job/markdown.js +17 -13
- package/app/formatters/json-ld.js +242 -0
- package/app/formatters/microdata-shared.js +184 -0
- package/app/formatters/progress/shared.js +14 -11
- package/app/formatters/shared.js +7 -2
- package/app/formatters/skill/dom.js +3 -0
- package/app/formatters/skill/microdata.js +151 -0
- package/app/formatters/stage/dom.js +3 -18
- package/app/formatters/stage/microdata.js +110 -0
- package/app/formatters/stage/shared.js +0 -27
- package/app/formatters/track/dom.js +5 -30
- package/app/formatters/track/markdown.js +2 -25
- package/app/formatters/track/microdata.js +111 -0
- package/app/formatters/track/shared.js +6 -58
- package/app/handout-main.js +26 -12
- package/app/handout.html +7 -0
- package/app/index.html +11 -0
- package/app/lib/card-mappers.js +17 -12
- package/app/lib/form-controls.js +64 -1
- package/app/lib/job-cache.js +12 -9
- package/app/lib/render.js +8 -1
- package/app/lib/template-loader.js +75 -0
- package/app/lib/yaml-loader.js +25 -8
- package/app/main.js +8 -4
- package/app/model/agent.js +158 -130
- package/app/model/checklist.js +57 -91
- package/app/model/derivation.js +135 -68
- package/app/model/index-generator.js +1 -7
- package/app/model/job.js +19 -13
- package/app/model/levels.js +20 -12
- package/app/model/loader.js +41 -17
- package/app/model/matching.js +33 -3
- package/app/model/profile.js +38 -45
- package/app/model/schema-validation.js +438 -0
- package/app/model/validation.js +747 -68
- package/app/pages/agent-builder.js +125 -28
- package/app/pages/assessment-results.js +10 -4
- package/app/pages/discipline.js +36 -6
- package/app/pages/driver.js +9 -47
- package/app/pages/interview-builder.js +3 -1
- package/app/pages/interview.js +15 -4
- package/app/pages/job-builder.js +4 -1
- package/app/pages/job.js +43 -8
- package/app/pages/landing.js +10 -10
- package/app/pages/progress-builder.js +3 -1
- package/app/pages/progress.js +78 -26
- package/app/pages/self-assessment.js +3 -3
- package/app/pages/stage.js +3 -126
- package/app/slide-main.js +45 -17
- package/app/slides/index.js +3 -1
- package/app/slides/overview.js +40 -4
- package/app/slides/progress.js +4 -2
- package/app/slides.html +7 -0
- package/bin/pathway.js +28 -75
- package/examples/agents/.claude/skills/architecture-design/SKILL.md +58 -16
- package/examples/agents/.claude/skills/cloud-platforms/SKILL.md +59 -18
- package/examples/agents/.claude/skills/code-quality-review/SKILL.md +58 -17
- package/examples/agents/.claude/skills/devops-cicd/SKILL.md +64 -18
- package/examples/agents/.claude/skills/full-stack-development/SKILL.md +59 -15
- package/examples/agents/.claude/skills/sre-practices/SKILL.md +64 -18
- package/examples/agents/.claude/skills/technical-debt-management/SKILL.md +58 -17
- package/examples/agents/.github/agents/se-platform-code.agent.md +39 -88
- package/examples/agents/.github/agents/se-platform-plan.agent.md +41 -88
- package/examples/agents/.github/agents/se-platform-review.agent.md +38 -15
- package/examples/agents/.vscode/settings.json +1 -1
- package/examples/behaviours/outcome_ownership.yaml +1 -2
- package/examples/behaviours/polymathic_knowledge.yaml +1 -2
- package/examples/behaviours/precise_communication.yaml +1 -2
- package/examples/behaviours/relentless_curiosity.yaml +1 -2
- package/examples/behaviours/systems_thinking.yaml +1 -2
- package/examples/capabilities/business.yaml +80 -142
- package/examples/capabilities/delivery.yaml +155 -219
- package/examples/capabilities/people.yaml +2 -34
- package/examples/capabilities/reliability.yaml +161 -80
- package/examples/capabilities/scale.yaml +234 -252
- package/examples/copilot-setup-steps.yaml +25 -0
- package/examples/devcontainer.yaml +21 -0
- package/examples/disciplines/_index.yaml +1 -0
- package/examples/disciplines/data_engineering.yaml +14 -12
- package/examples/disciplines/engineering_management.yaml +63 -0
- package/examples/disciplines/software_engineering.yaml +14 -12
- package/examples/drivers.yaml +1 -4
- package/examples/framework.yaml +1 -2
- package/examples/grades.yaml +14 -15
- package/examples/questions/behaviours/outcome_ownership.yaml +1 -2
- package/examples/questions/behaviours/polymathic_knowledge.yaml +1 -2
- package/examples/questions/behaviours/precise_communication.yaml +1 -2
- package/examples/questions/behaviours/relentless_curiosity.yaml +1 -2
- package/examples/questions/behaviours/systems_thinking.yaml +1 -2
- package/examples/questions/skills/architecture_design.yaml +1 -2
- package/examples/questions/skills/cloud_platforms.yaml +1 -2
- package/examples/questions/skills/code_quality.yaml +1 -2
- package/examples/questions/skills/data_modeling.yaml +1 -2
- package/examples/questions/skills/devops.yaml +1 -2
- package/examples/questions/skills/full_stack_development.yaml +1 -2
- package/examples/questions/skills/sre_practices.yaml +1 -2
- package/examples/questions/skills/stakeholder_management.yaml +1 -2
- package/examples/questions/skills/team_collaboration.yaml +1 -2
- package/examples/questions/skills/technical_writing.yaml +1 -2
- package/examples/self-assessments.yaml +1 -3
- package/examples/stages.yaml +101 -46
- package/examples/tracks/_index.yaml +0 -1
- package/examples/tracks/platform.yaml +8 -13
- package/examples/tracks/sre.yaml +8 -18
- package/examples/vscode-settings.yaml +2 -7
- package/package.json +9 -3
- package/templates/agent.template.md +65 -0
- package/templates/job.template.md +47 -0
- package/templates/skill.template.md +28 -0
- package/examples/agents/.claude/skills/data-modeling/SKILL.md +0 -99
- package/examples/agents/.claude/skills/developer-experience/SKILL.md +0 -99
- package/examples/agents/.claude/skills/knowledge-management/SKILL.md +0 -100
- package/examples/agents/.claude/skills/pattern-generalization/SKILL.md +0 -102
- package/examples/agents/.claude/skills/technical-writing/SKILL.md +0 -129
- package/examples/tracks/manager.yaml +0 -53
package/bin/pathway.js
CHANGED
|
@@ -31,14 +31,10 @@
|
|
|
31
31
|
import { fileURLToPath } from "url";
|
|
32
32
|
import { dirname, join, resolve } from "path";
|
|
33
33
|
import { existsSync } from "fs";
|
|
34
|
-
import {
|
|
35
|
-
loadAllData,
|
|
36
|
-
loadAgentData,
|
|
37
|
-
loadSkillsWithAgentData,
|
|
38
|
-
loadQuestionBankFromFolder,
|
|
39
|
-
} from "../app/model/loader.js";
|
|
34
|
+
import { loadAllData } from "../app/model/loader.js";
|
|
40
35
|
import { generateAllIndexes } from "../app/model/index-generator.js";
|
|
41
36
|
import { formatError } from "../app/lib/cli-output.js";
|
|
37
|
+
import { runSchemaValidation } from "../app/model/schema-validation.js";
|
|
42
38
|
|
|
43
39
|
// Import command handlers
|
|
44
40
|
import { runSkillCommand } from "../app/commands/skill.js";
|
|
@@ -105,7 +101,7 @@ Composite Commands:
|
|
|
105
101
|
progress <discipline> <track> <grade> [--compare=GRADE]
|
|
106
102
|
Show career progression
|
|
107
103
|
questions [filters] Browse interview questions
|
|
108
|
-
agent
|
|
104
|
+
agent <discipline> [--track=<track>] Generate AI coding agent
|
|
109
105
|
|
|
110
106
|
Global Options:
|
|
111
107
|
--list Output IDs only (for piping to other commands)
|
|
@@ -125,10 +121,10 @@ Questions Filters:
|
|
|
125
121
|
--format=FORMAT Output format: table, yaml, json
|
|
126
122
|
|
|
127
123
|
Agent Options:
|
|
128
|
-
--
|
|
129
|
-
--
|
|
130
|
-
--
|
|
131
|
-
--all-
|
|
124
|
+
--track=TRACK Track for the agent (e.g., platform, forward_deployed)
|
|
125
|
+
--output=PATH Write files to directory (without this, outputs to console)
|
|
126
|
+
--stage=STAGE Generate specific stage agent (plan, code, review)
|
|
127
|
+
--all-stages Generate all stage agents (default)
|
|
132
128
|
|
|
133
129
|
Examples:
|
|
134
130
|
npx pathway skill # Summary of all skills
|
|
@@ -143,7 +139,7 @@ Examples:
|
|
|
143
139
|
npx pathway questions --level=practitioner
|
|
144
140
|
npx pathway questions --stats
|
|
145
141
|
|
|
146
|
-
npx pathway agent software_engineering platform --output=./agents
|
|
142
|
+
npx pathway agent software_engineering --track=platform --output=./agents
|
|
147
143
|
npx pathway --validate # Validate all data
|
|
148
144
|
`;
|
|
149
145
|
|
|
@@ -164,6 +160,8 @@ function parseArgs(args) {
|
|
|
164
160
|
type: "full",
|
|
165
161
|
compare: null,
|
|
166
162
|
data: null,
|
|
163
|
+
// Shared command options
|
|
164
|
+
track: null,
|
|
167
165
|
// Questions command options
|
|
168
166
|
level: null,
|
|
169
167
|
maturity: null,
|
|
@@ -176,9 +174,6 @@ function parseArgs(args) {
|
|
|
176
174
|
checklist: null,
|
|
177
175
|
// Agent command options
|
|
178
176
|
output: null,
|
|
179
|
-
preview: false,
|
|
180
|
-
role: null,
|
|
181
|
-
"all-roles": false,
|
|
182
177
|
stage: null,
|
|
183
178
|
"all-stages": false,
|
|
184
179
|
// Serve command options
|
|
@@ -200,14 +195,14 @@ function parseArgs(args) {
|
|
|
200
195
|
result.validate = true;
|
|
201
196
|
} else if (arg === "--generate-index") {
|
|
202
197
|
result.generateIndex = true;
|
|
203
|
-
} else if (arg === "--preview") {
|
|
204
|
-
result.preview = true;
|
|
205
198
|
} else if (arg.startsWith("--type=")) {
|
|
206
199
|
result.type = arg.slice(7);
|
|
207
200
|
} else if (arg.startsWith("--compare=")) {
|
|
208
201
|
result.compare = arg.slice(10);
|
|
209
202
|
} else if (arg.startsWith("--data=")) {
|
|
210
203
|
result.data = arg.slice(7);
|
|
204
|
+
} else if (arg.startsWith("--track=")) {
|
|
205
|
+
result.track = arg.slice(8);
|
|
211
206
|
} else if (arg.startsWith("--output=")) {
|
|
212
207
|
result.output = arg.slice(9);
|
|
213
208
|
} else if (arg.startsWith("--level=")) {
|
|
@@ -260,7 +255,7 @@ function printHelp() {
|
|
|
260
255
|
}
|
|
261
256
|
|
|
262
257
|
/**
|
|
263
|
-
* Run full data validation
|
|
258
|
+
* Run full data validation using JSON schemas
|
|
264
259
|
* @param {string} dataDir - Path to data directory
|
|
265
260
|
*/
|
|
266
261
|
async function runFullValidation(dataDir) {
|
|
@@ -268,77 +263,34 @@ async function runFullValidation(dataDir) {
|
|
|
268
263
|
|
|
269
264
|
let hasErrors = false;
|
|
270
265
|
|
|
271
|
-
// Load
|
|
266
|
+
// Load data for referential integrity checking (without old validation)
|
|
272
267
|
const data = await loadAllData(dataDir, {
|
|
273
|
-
validate:
|
|
268
|
+
validate: false,
|
|
274
269
|
throwOnError: false,
|
|
275
270
|
});
|
|
276
271
|
|
|
277
|
-
|
|
278
|
-
|
|
272
|
+
// Run schema validation + referential integrity
|
|
273
|
+
const result = await runSchemaValidation(dataDir, data);
|
|
274
|
+
|
|
275
|
+
if (result.valid) {
|
|
276
|
+
console.log("✅ Schema validation passed");
|
|
279
277
|
} else {
|
|
280
|
-
console.log("❌
|
|
278
|
+
console.log("❌ Schema validation failed");
|
|
281
279
|
hasErrors = true;
|
|
282
|
-
for (const e of
|
|
283
|
-
console.log(
|
|
280
|
+
for (const e of result.errors) {
|
|
281
|
+
console.log(
|
|
282
|
+
` - [${e.type}] ${e.message}${e.path ? ` (${e.path})` : ""}`,
|
|
283
|
+
);
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
|
|
287
|
-
if (
|
|
287
|
+
if (result.warnings.length > 0) {
|
|
288
288
|
console.log("\n⚠️ Warnings:");
|
|
289
|
-
for (const w of
|
|
289
|
+
for (const w of result.warnings) {
|
|
290
290
|
console.log(` - [${w.type}] ${w.message}`);
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
293
|
|
|
294
|
-
// Validate question bank
|
|
295
|
-
try {
|
|
296
|
-
const questionBank = await loadQuestionBankFromFolder(
|
|
297
|
-
join(dataDir, "questions"),
|
|
298
|
-
data.skills,
|
|
299
|
-
data.behaviours,
|
|
300
|
-
{ validate: true, throwOnError: false },
|
|
301
|
-
);
|
|
302
|
-
|
|
303
|
-
if (questionBank.validation?.valid) {
|
|
304
|
-
console.log("✅ Question bank validation passed");
|
|
305
|
-
} else if (questionBank.validation) {
|
|
306
|
-
console.log("❌ Question bank validation failed");
|
|
307
|
-
hasErrors = true;
|
|
308
|
-
for (const e of questionBank.validation.errors) {
|
|
309
|
-
console.log(` - [${e.type}] ${e.message}`);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
} catch (err) {
|
|
313
|
-
console.log("⚠️ Could not validate question bank:", err.message);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
// Validate agent data
|
|
317
|
-
try {
|
|
318
|
-
const agentData = await loadAgentData(dataDir);
|
|
319
|
-
const skillsWithAgent = await loadSkillsWithAgentData(dataDir);
|
|
320
|
-
|
|
321
|
-
const skillsWithAgentCount = skillsWithAgent.filter((s) => s.agent).length;
|
|
322
|
-
|
|
323
|
-
console.log(
|
|
324
|
-
`✅ Agent data: ${agentData.disciplines.length} disciplines, ${agentData.tracks.length} tracks, ${skillsWithAgentCount} skills with agent sections`,
|
|
325
|
-
);
|
|
326
|
-
|
|
327
|
-
// Check for orphaned agent definitions
|
|
328
|
-
for (const d of agentData.disciplines) {
|
|
329
|
-
if (!data.disciplines.find((h) => h.id === d.id)) {
|
|
330
|
-
console.log(` ⚠️ Agent discipline '${d.id}' has no human definition`);
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
for (const t of agentData.tracks) {
|
|
334
|
-
if (!data.tracks.find((h) => h.id === t.id)) {
|
|
335
|
-
console.log(` ⚠️ Agent track '${t.id}' has no human definition`);
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
} catch (err) {
|
|
339
|
-
console.log("⚠️ Could not validate agent data:", err.message);
|
|
340
|
-
}
|
|
341
|
-
|
|
342
294
|
// Summary
|
|
343
295
|
console.log("\n📊 Data Summary:");
|
|
344
296
|
console.log(` Skills: ${data.skills?.length || 0}`);
|
|
@@ -347,6 +299,7 @@ async function runFullValidation(dataDir) {
|
|
|
347
299
|
console.log(` Tracks: ${data.tracks?.length || 0}`);
|
|
348
300
|
console.log(` Grades: ${data.grades?.length || 0}`);
|
|
349
301
|
console.log(` Drivers: ${data.drivers?.length || 0}`);
|
|
302
|
+
console.log(` Stages: ${data.stages?.length || 0}`);
|
|
350
303
|
console.log("");
|
|
351
304
|
|
|
352
305
|
return hasErrors ? 1 : 0;
|
|
@@ -8,14 +8,66 @@ description: |
|
|
|
8
8
|
|
|
9
9
|
# Architecture & Design
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Stage Guidance
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Plan Stage
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
**Focus:** Understand requirements and identify key architectural decisions.
|
|
16
|
+
Document trade-offs and design rationale.
|
|
17
|
+
|
|
18
|
+
**Activities:**
|
|
19
|
+
|
|
20
|
+
- Clarify functional and non-functional requirements
|
|
21
|
+
- Identify constraints (existing systems, team skills, timeline)
|
|
22
|
+
- Document key decisions and trade-offs
|
|
23
|
+
- Design for anticipated change
|
|
24
|
+
|
|
25
|
+
**Ready for Code when:**
|
|
26
|
+
|
|
27
|
+
- [ ] Requirements are clearly understood
|
|
28
|
+
- [ ] Key decisions are documented with rationale
|
|
29
|
+
- [ ] Trade-offs are explicit
|
|
30
|
+
- [ ] Failure modes are considered
|
|
31
|
+
|
|
32
|
+
### Code Stage
|
|
33
|
+
|
|
34
|
+
**Focus:** Implement architecture with clear boundaries and interfaces. Ensure
|
|
35
|
+
components can evolve independently.
|
|
36
|
+
|
|
37
|
+
**Activities:**
|
|
38
|
+
|
|
39
|
+
- Define clear interfaces between components
|
|
40
|
+
- Implement with appropriate patterns
|
|
41
|
+
- Document design decisions in code
|
|
42
|
+
- Test architectural boundaries
|
|
43
|
+
|
|
44
|
+
**Ready for Review when:**
|
|
45
|
+
|
|
46
|
+
- [ ] Dependencies are minimal and explicit
|
|
47
|
+
- [ ] Interfaces are well-defined
|
|
48
|
+
- [ ] Design patterns are documented
|
|
49
|
+
- [ ] Architecture tests pass
|
|
50
|
+
|
|
51
|
+
### Review Stage
|
|
52
|
+
|
|
53
|
+
**Focus:** Validate architecture meets requirements and is maintainable. Ensure
|
|
54
|
+
scalability and security are addressed.
|
|
55
|
+
|
|
56
|
+
**Activities:**
|
|
57
|
+
|
|
58
|
+
- Verify architecture meets requirements
|
|
59
|
+
- Review for scalability concerns
|
|
60
|
+
- Check security implications
|
|
61
|
+
- Validate documentation completeness
|
|
62
|
+
|
|
63
|
+
**Ready for Complete when:**
|
|
64
|
+
|
|
65
|
+
- [ ] Scalability requirements are addressed
|
|
66
|
+
- [ ] Security implications are reviewed
|
|
67
|
+
- [ ] Architecture is documented
|
|
68
|
+
- [ ] Design is maintainable
|
|
69
|
+
|
|
70
|
+
## Reference
|
|
19
71
|
|
|
20
72
|
## Design Process
|
|
21
73
|
|
|
@@ -76,13 +128,3 @@ Good architecture accommodates change:
|
|
|
76
128
|
- REST: Synchronous, request-response
|
|
77
129
|
- Event-driven: Asynchronous, loose coupling
|
|
78
130
|
- gRPC: Efficient, strongly typed
|
|
79
|
-
|
|
80
|
-
## Architecture Checklist
|
|
81
|
-
|
|
82
|
-
- [ ] Requirements are clearly understood
|
|
83
|
-
- [ ] Key decisions are documented with rationale
|
|
84
|
-
- [ ] Trade-offs are explicit
|
|
85
|
-
- [ ] Failure modes are considered
|
|
86
|
-
- [ ] Scalability requirements are addressed
|
|
87
|
-
- [ ] Security implications are reviewed
|
|
88
|
-
- [ ] Dependencies are minimal and explicit
|
|
@@ -8,15 +8,67 @@ description: |
|
|
|
8
8
|
|
|
9
9
|
# Cloud Platforms
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Stage Guidance
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Plan Stage
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
**Focus:** Select appropriate cloud services and design for availability,
|
|
16
|
+
security, and cost efficiency.
|
|
17
|
+
|
|
18
|
+
**Activities:**
|
|
19
|
+
|
|
20
|
+
- Identify service requirements
|
|
21
|
+
- Select appropriate cloud services
|
|
22
|
+
- Plan for high availability
|
|
23
|
+
- Consider security and cost
|
|
24
|
+
|
|
25
|
+
**Ready for Code when:**
|
|
26
|
+
|
|
27
|
+
- [ ] Service selection matches requirements
|
|
28
|
+
- [ ] Availability approach planned
|
|
29
|
+
- [ ] Security model defined
|
|
30
|
+
- [ ] Cost controls considered
|
|
31
|
+
|
|
32
|
+
### Code Stage
|
|
33
|
+
|
|
34
|
+
**Focus:** Implement cloud infrastructure with security best practices. Use
|
|
35
|
+
infrastructure as code for reproducibility.
|
|
36
|
+
|
|
37
|
+
**Activities:**
|
|
38
|
+
|
|
39
|
+
- Define infrastructure as code
|
|
40
|
+
- Configure security groups and IAM
|
|
41
|
+
- Set up monitoring and alerting
|
|
42
|
+
- Implement deployment automation
|
|
43
|
+
|
|
44
|
+
**Ready for Review when:**
|
|
45
|
+
|
|
46
|
+
- [ ] Multi-AZ deployment for availability
|
|
47
|
+
- [ ] Security groups properly configured
|
|
48
|
+
- [ ] IAM follows least privilege
|
|
49
|
+
- [ ] Data encrypted at rest and in transit
|
|
50
|
+
- [ ] Infrastructure defined as code
|
|
51
|
+
|
|
52
|
+
### Review Stage
|
|
53
|
+
|
|
54
|
+
**Focus:** Validate security, availability, and operational readiness. Ensure
|
|
55
|
+
cost controls are in place.
|
|
56
|
+
|
|
57
|
+
**Activities:**
|
|
58
|
+
|
|
59
|
+
- Verify security configuration
|
|
60
|
+
- Test availability and failover
|
|
61
|
+
- Review cost projections
|
|
62
|
+
- Validate monitoring coverage
|
|
63
|
+
|
|
64
|
+
**Ready for Complete when:**
|
|
65
|
+
|
|
66
|
+
- [ ] Security review completed
|
|
67
|
+
- [ ] Monitoring and alerting in place
|
|
68
|
+
- [ ] Cost controls established
|
|
69
|
+
- [ ] Operational runbooks exist
|
|
70
|
+
|
|
71
|
+
## Reference
|
|
20
72
|
|
|
21
73
|
## Service Categories
|
|
22
74
|
|
|
@@ -77,14 +129,3 @@ Use this skill when:
|
|
|
77
129
|
- Leverage spot/preemptible instances for fault-tolerant work
|
|
78
130
|
- Set up billing alerts and budgets
|
|
79
131
|
- Delete unused resources
|
|
80
|
-
|
|
81
|
-
## Cloud Checklist
|
|
82
|
-
|
|
83
|
-
- [ ] Service selection matches requirements
|
|
84
|
-
- [ ] Multi-AZ deployment for availability
|
|
85
|
-
- [ ] Security groups properly configured
|
|
86
|
-
- [ ] IAM follows least privilege
|
|
87
|
-
- [ ] Data encrypted at rest and in transit
|
|
88
|
-
- [ ] Monitoring and alerting in place
|
|
89
|
-
- [ ] Cost controls established
|
|
90
|
-
- [ ] Infrastructure defined as code
|
|
@@ -8,14 +8,66 @@ description: |
|
|
|
8
8
|
|
|
9
9
|
# Code Quality & Review
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Stage Guidance
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Plan Stage
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
**Focus:** Understand code review scope and establish review criteria. Consider
|
|
16
|
+
what quality standards apply.
|
|
17
|
+
|
|
18
|
+
**Activities:**
|
|
19
|
+
|
|
20
|
+
- Identify code review scope
|
|
21
|
+
- Understand applicable standards
|
|
22
|
+
- Plan review approach
|
|
23
|
+
- Consider risk level
|
|
24
|
+
|
|
25
|
+
**Ready for Code when:**
|
|
26
|
+
|
|
27
|
+
- [ ] Review scope is clear
|
|
28
|
+
- [ ] Standards are understood
|
|
29
|
+
- [ ] Review approach is planned
|
|
30
|
+
- [ ] Risk level is assessed
|
|
31
|
+
|
|
32
|
+
### Code Stage
|
|
33
|
+
|
|
34
|
+
**Focus:** Write clean, maintainable, tested code. Follow project conventions
|
|
35
|
+
and ensure adequate coverage.
|
|
36
|
+
|
|
37
|
+
**Activities:**
|
|
38
|
+
|
|
39
|
+
- Write readable, well-structured code
|
|
40
|
+
- Add appropriate tests
|
|
41
|
+
- Follow project conventions
|
|
42
|
+
- Document non-obvious logic
|
|
43
|
+
|
|
44
|
+
**Ready for Review when:**
|
|
45
|
+
|
|
46
|
+
- [ ] Code compiles and passes all tests
|
|
47
|
+
- [ ] Changes are covered by tests
|
|
48
|
+
- [ ] Code follows project conventions
|
|
49
|
+
- [ ] No unnecessary complexity
|
|
50
|
+
|
|
51
|
+
### Review Stage
|
|
52
|
+
|
|
53
|
+
**Focus:** Verify correctness, maintainability, and adherence to standards.
|
|
54
|
+
Ensure no code is shipped that isn't understood.
|
|
55
|
+
|
|
56
|
+
**Activities:**
|
|
57
|
+
|
|
58
|
+
- Verify code does what it claims
|
|
59
|
+
- Check test coverage
|
|
60
|
+
- Review for maintainability
|
|
61
|
+
- Confirm style compliance
|
|
62
|
+
|
|
63
|
+
**Ready for Complete when:**
|
|
64
|
+
|
|
65
|
+
- [ ] No obvious security vulnerabilities
|
|
66
|
+
- [ ] Error handling is appropriate
|
|
67
|
+
- [ ] Documentation updated if needed
|
|
68
|
+
- [ ] No code you don't fully understand
|
|
69
|
+
|
|
70
|
+
## Reference
|
|
19
71
|
|
|
20
72
|
## Review Process
|
|
21
73
|
|
|
@@ -54,14 +106,3 @@ Verify consistency with project standards:
|
|
|
54
106
|
- Consistent formatting and indentation
|
|
55
107
|
- Appropriate comments for non-obvious logic
|
|
56
108
|
- Documentation updated if needed
|
|
57
|
-
|
|
58
|
-
## Quality Checklist
|
|
59
|
-
|
|
60
|
-
- [ ] Code compiles and passes all tests
|
|
61
|
-
- [ ] Changes are covered by tests
|
|
62
|
-
- [ ] No obvious security vulnerabilities
|
|
63
|
-
- [ ] Error handling is appropriate
|
|
64
|
-
- [ ] Code follows project conventions
|
|
65
|
-
- [ ] No unnecessary complexity
|
|
66
|
-
- [ ] Documentation updated if needed
|
|
67
|
-
- [ ] No code you don't fully understand
|
|
@@ -8,15 +8,72 @@ description: |
|
|
|
8
8
|
|
|
9
9
|
# DevOps & CI/CD
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Stage Guidance
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Plan Stage
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
**Focus:** Plan CI/CD pipeline architecture and infrastructure requirements.
|
|
16
|
+
Consider deployment strategies and monitoring needs.
|
|
17
|
+
|
|
18
|
+
**Activities:**
|
|
19
|
+
|
|
20
|
+
- Define pipeline stages (build, test, deploy)
|
|
21
|
+
- Identify infrastructure requirements
|
|
22
|
+
- Plan deployment strategy (rolling, blue-green, canary)
|
|
23
|
+
- Consider monitoring and alerting needs
|
|
24
|
+
- Plan secret management approach
|
|
25
|
+
|
|
26
|
+
**Ready for Code when:**
|
|
27
|
+
|
|
28
|
+
- [ ] Pipeline architecture is documented
|
|
29
|
+
- [ ] Deployment strategy is chosen and justified
|
|
30
|
+
- [ ] Infrastructure requirements are identified
|
|
31
|
+
- [ ] Monitoring approach is defined
|
|
32
|
+
|
|
33
|
+
### Code Stage
|
|
34
|
+
|
|
35
|
+
**Focus:** Implement CI/CD pipelines and infrastructure as code. Follow best
|
|
36
|
+
practices for containerization and deployment automation.
|
|
37
|
+
|
|
38
|
+
**Activities:**
|
|
39
|
+
|
|
40
|
+
- Configure CI/CD pipeline stages
|
|
41
|
+
- Implement infrastructure as code (Terraform, CloudFormation)
|
|
42
|
+
- Create Dockerfiles with security best practices
|
|
43
|
+
- Set up monitoring and alerting
|
|
44
|
+
- Configure secret management
|
|
45
|
+
- Implement deployment automation
|
|
46
|
+
|
|
47
|
+
**Ready for Review when:**
|
|
48
|
+
|
|
49
|
+
- [ ] Pipeline runs on every commit
|
|
50
|
+
- [ ] Tests run before deployment
|
|
51
|
+
- [ ] Deployments are automated
|
|
52
|
+
- [ ] Infrastructure is version controlled
|
|
53
|
+
- [ ] Secrets are managed securely
|
|
54
|
+
- [ ] Monitoring is in place
|
|
55
|
+
|
|
56
|
+
### Review Stage
|
|
57
|
+
|
|
58
|
+
**Focus:** Verify pipeline reliability, security, and operational readiness.
|
|
59
|
+
Ensure rollback procedures work and documentation is complete.
|
|
60
|
+
|
|
61
|
+
**Activities:**
|
|
62
|
+
|
|
63
|
+
- Verify pipeline runs successfully end-to-end
|
|
64
|
+
- Test rollback procedures
|
|
65
|
+
- Review security configurations
|
|
66
|
+
- Validate monitoring and alerts
|
|
67
|
+
- Check documentation completeness
|
|
68
|
+
|
|
69
|
+
**Ready for Complete when:**
|
|
70
|
+
|
|
71
|
+
- [ ] Pipeline is tested and reliable
|
|
72
|
+
- [ ] Rollback procedure is documented and tested
|
|
73
|
+
- [ ] Alerts are configured and tested
|
|
74
|
+
- [ ] Runbooks exist for common issues
|
|
75
|
+
|
|
76
|
+
## Reference
|
|
20
77
|
|
|
21
78
|
## CI/CD Pipeline Stages
|
|
22
79
|
|
|
@@ -83,14 +140,3 @@ CMD ["node", "server.js"]
|
|
|
83
140
|
- Route small percentage to new version
|
|
84
141
|
- Monitor for issues
|
|
85
142
|
- Gradually increase traffic
|
|
86
|
-
|
|
87
|
-
## DevOps Checklist
|
|
88
|
-
|
|
89
|
-
- [ ] Pipeline runs on every commit
|
|
90
|
-
- [ ] Tests run before deployment
|
|
91
|
-
- [ ] Deployments are automated
|
|
92
|
-
- [ ] Rollback procedure is documented
|
|
93
|
-
- [ ] Infrastructure is version controlled
|
|
94
|
-
- [ ] Secrets are managed securely
|
|
95
|
-
- [ ] Monitoring is in place
|
|
96
|
-
- [ ] Alerts are configured
|
|
@@ -8,14 +8,67 @@ description: |
|
|
|
8
8
|
|
|
9
9
|
# Full-Stack Development
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Stage Guidance
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
### Plan Stage
|
|
14
14
|
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
**Focus:** Design the full-stack solution architecture. Define API contracts and
|
|
16
|
+
plan layer interactions.
|
|
17
|
+
|
|
18
|
+
**Activities:**
|
|
19
|
+
|
|
20
|
+
- Define the API contract first
|
|
21
|
+
- Plan frontend and backend responsibilities
|
|
22
|
+
- Design database schema
|
|
23
|
+
- Plan infrastructure requirements
|
|
24
|
+
|
|
25
|
+
**Ready for Code when:**
|
|
26
|
+
|
|
27
|
+
- [ ] API contract is defined
|
|
28
|
+
- [ ] Layer responsibilities are clear
|
|
29
|
+
- [ ] Database schema is planned
|
|
30
|
+
- [ ] Infrastructure approach is decided
|
|
31
|
+
|
|
32
|
+
### Code Stage
|
|
33
|
+
|
|
34
|
+
**Focus:** Build vertically—complete one feature end-to-end before starting
|
|
35
|
+
another. Validates assumptions early.
|
|
36
|
+
|
|
37
|
+
**Activities:**
|
|
38
|
+
|
|
39
|
+
- Implement API endpoints
|
|
40
|
+
- Build frontend integration
|
|
41
|
+
- Create database schema and queries
|
|
42
|
+
- Configure infrastructure as needed
|
|
43
|
+
- Test across layers
|
|
44
|
+
|
|
45
|
+
**Ready for Review when:**
|
|
46
|
+
|
|
47
|
+
- [ ] Frontend connects to backend correctly
|
|
48
|
+
- [ ] Database schema supports the feature
|
|
49
|
+
- [ ] Error handling spans all layers
|
|
50
|
+
- [ ] Feature works end-to-end
|
|
51
|
+
- [ ] Deployment is automated
|
|
52
|
+
|
|
53
|
+
### Review Stage
|
|
54
|
+
|
|
55
|
+
**Focus:** Verify integration across layers and ensure deployment readiness.
|
|
56
|
+
|
|
57
|
+
**Activities:**
|
|
58
|
+
|
|
59
|
+
- Test integration across all layers
|
|
60
|
+
- Verify error handling end-to-end
|
|
61
|
+
- Check deployment configuration
|
|
62
|
+
- Review documentation
|
|
63
|
+
|
|
64
|
+
**Ready for Complete when:**
|
|
65
|
+
|
|
66
|
+
- [ ] Integration tests pass
|
|
67
|
+
- [ ] Deployment verified
|
|
68
|
+
- [ ] Documentation is complete
|
|
69
|
+
- [ ] Feature is production-ready
|
|
70
|
+
|
|
71
|
+
## Reference
|
|
19
72
|
|
|
20
73
|
## Technology Stack
|
|
21
74
|
|
|
@@ -79,12 +132,3 @@ Use this skill when:
|
|
|
79
132
|
- Unit tests per layer
|
|
80
133
|
- Integration tests across layers
|
|
81
134
|
- End-to-end tests for critical paths
|
|
82
|
-
|
|
83
|
-
## Full-Stack Checklist
|
|
84
|
-
|
|
85
|
-
- [ ] API contract is defined
|
|
86
|
-
- [ ] Frontend connects to backend correctly
|
|
87
|
-
- [ ] Database schema supports the feature
|
|
88
|
-
- [ ] Error handling spans all layers
|
|
89
|
-
- [ ] Feature works end-to-end
|
|
90
|
-
- [ ] Deployment is automated
|