@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.
Files changed (140) hide show
  1. package/app/commands/agent.js +119 -31
  2. package/app/commands/command-factory.js +3 -3
  3. package/app/commands/interview.js +14 -7
  4. package/app/commands/job.js +52 -33
  5. package/app/commands/progress.js +14 -7
  6. package/app/commands/serve.js +5 -0
  7. package/app/commands/stage.js +0 -10
  8. package/app/commands/track.js +5 -8
  9. package/app/components/builder.js +117 -30
  10. package/app/css/components/surfaces.css +16 -0
  11. package/app/formatters/agent/profile.js +30 -115
  12. package/app/formatters/agent/skill.js +23 -44
  13. package/app/formatters/behaviour/dom.js +3 -0
  14. package/app/formatters/behaviour/microdata.js +106 -0
  15. package/app/formatters/discipline/dom.js +28 -1
  16. package/app/formatters/discipline/microdata.js +117 -0
  17. package/app/formatters/discipline/shared.js +49 -8
  18. package/app/formatters/driver/dom.js +3 -0
  19. package/app/formatters/driver/microdata.js +91 -0
  20. package/app/formatters/grade/dom.js +5 -4
  21. package/app/formatters/grade/microdata.js +151 -0
  22. package/app/formatters/index.js +32 -1
  23. package/app/formatters/interview/shared.js +13 -8
  24. package/app/formatters/job/description.js +70 -81
  25. package/app/formatters/job/dom.js +40 -113
  26. package/app/formatters/job/markdown.js +17 -13
  27. package/app/formatters/json-ld.js +242 -0
  28. package/app/formatters/microdata-shared.js +184 -0
  29. package/app/formatters/progress/shared.js +14 -11
  30. package/app/formatters/shared.js +7 -2
  31. package/app/formatters/skill/dom.js +3 -0
  32. package/app/formatters/skill/microdata.js +151 -0
  33. package/app/formatters/stage/dom.js +3 -18
  34. package/app/formatters/stage/microdata.js +110 -0
  35. package/app/formatters/stage/shared.js +0 -27
  36. package/app/formatters/track/dom.js +5 -30
  37. package/app/formatters/track/markdown.js +2 -25
  38. package/app/formatters/track/microdata.js +111 -0
  39. package/app/formatters/track/shared.js +6 -58
  40. package/app/handout-main.js +26 -12
  41. package/app/handout.html +7 -0
  42. package/app/index.html +11 -0
  43. package/app/lib/card-mappers.js +17 -12
  44. package/app/lib/form-controls.js +64 -1
  45. package/app/lib/job-cache.js +12 -9
  46. package/app/lib/render.js +8 -1
  47. package/app/lib/template-loader.js +75 -0
  48. package/app/lib/yaml-loader.js +25 -8
  49. package/app/main.js +8 -4
  50. package/app/model/agent.js +158 -130
  51. package/app/model/checklist.js +57 -91
  52. package/app/model/derivation.js +135 -68
  53. package/app/model/index-generator.js +1 -7
  54. package/app/model/job.js +19 -13
  55. package/app/model/levels.js +20 -12
  56. package/app/model/loader.js +41 -17
  57. package/app/model/matching.js +33 -3
  58. package/app/model/profile.js +38 -45
  59. package/app/model/schema-validation.js +438 -0
  60. package/app/model/validation.js +747 -68
  61. package/app/pages/agent-builder.js +125 -28
  62. package/app/pages/assessment-results.js +10 -4
  63. package/app/pages/discipline.js +36 -6
  64. package/app/pages/driver.js +9 -47
  65. package/app/pages/interview-builder.js +3 -1
  66. package/app/pages/interview.js +15 -4
  67. package/app/pages/job-builder.js +4 -1
  68. package/app/pages/job.js +43 -8
  69. package/app/pages/landing.js +10 -10
  70. package/app/pages/progress-builder.js +3 -1
  71. package/app/pages/progress.js +78 -26
  72. package/app/pages/self-assessment.js +3 -3
  73. package/app/pages/stage.js +3 -126
  74. package/app/slide-main.js +45 -17
  75. package/app/slides/index.js +3 -1
  76. package/app/slides/overview.js +40 -4
  77. package/app/slides/progress.js +4 -2
  78. package/app/slides.html +7 -0
  79. package/bin/pathway.js +28 -75
  80. package/examples/agents/.claude/skills/architecture-design/SKILL.md +58 -16
  81. package/examples/agents/.claude/skills/cloud-platforms/SKILL.md +59 -18
  82. package/examples/agents/.claude/skills/code-quality-review/SKILL.md +58 -17
  83. package/examples/agents/.claude/skills/devops-cicd/SKILL.md +64 -18
  84. package/examples/agents/.claude/skills/full-stack-development/SKILL.md +59 -15
  85. package/examples/agents/.claude/skills/sre-practices/SKILL.md +64 -18
  86. package/examples/agents/.claude/skills/technical-debt-management/SKILL.md +58 -17
  87. package/examples/agents/.github/agents/se-platform-code.agent.md +39 -88
  88. package/examples/agents/.github/agents/se-platform-plan.agent.md +41 -88
  89. package/examples/agents/.github/agents/se-platform-review.agent.md +38 -15
  90. package/examples/agents/.vscode/settings.json +1 -1
  91. package/examples/behaviours/outcome_ownership.yaml +1 -2
  92. package/examples/behaviours/polymathic_knowledge.yaml +1 -2
  93. package/examples/behaviours/precise_communication.yaml +1 -2
  94. package/examples/behaviours/relentless_curiosity.yaml +1 -2
  95. package/examples/behaviours/systems_thinking.yaml +1 -2
  96. package/examples/capabilities/business.yaml +80 -142
  97. package/examples/capabilities/delivery.yaml +155 -219
  98. package/examples/capabilities/people.yaml +2 -34
  99. package/examples/capabilities/reliability.yaml +161 -80
  100. package/examples/capabilities/scale.yaml +234 -252
  101. package/examples/copilot-setup-steps.yaml +25 -0
  102. package/examples/devcontainer.yaml +21 -0
  103. package/examples/disciplines/_index.yaml +1 -0
  104. package/examples/disciplines/data_engineering.yaml +14 -12
  105. package/examples/disciplines/engineering_management.yaml +63 -0
  106. package/examples/disciplines/software_engineering.yaml +14 -12
  107. package/examples/drivers.yaml +1 -4
  108. package/examples/framework.yaml +1 -2
  109. package/examples/grades.yaml +14 -15
  110. package/examples/questions/behaviours/outcome_ownership.yaml +1 -2
  111. package/examples/questions/behaviours/polymathic_knowledge.yaml +1 -2
  112. package/examples/questions/behaviours/precise_communication.yaml +1 -2
  113. package/examples/questions/behaviours/relentless_curiosity.yaml +1 -2
  114. package/examples/questions/behaviours/systems_thinking.yaml +1 -2
  115. package/examples/questions/skills/architecture_design.yaml +1 -2
  116. package/examples/questions/skills/cloud_platforms.yaml +1 -2
  117. package/examples/questions/skills/code_quality.yaml +1 -2
  118. package/examples/questions/skills/data_modeling.yaml +1 -2
  119. package/examples/questions/skills/devops.yaml +1 -2
  120. package/examples/questions/skills/full_stack_development.yaml +1 -2
  121. package/examples/questions/skills/sre_practices.yaml +1 -2
  122. package/examples/questions/skills/stakeholder_management.yaml +1 -2
  123. package/examples/questions/skills/team_collaboration.yaml +1 -2
  124. package/examples/questions/skills/technical_writing.yaml +1 -2
  125. package/examples/self-assessments.yaml +1 -3
  126. package/examples/stages.yaml +101 -46
  127. package/examples/tracks/_index.yaml +0 -1
  128. package/examples/tracks/platform.yaml +8 -13
  129. package/examples/tracks/sre.yaml +8 -18
  130. package/examples/vscode-settings.yaml +2 -7
  131. package/package.json +9 -3
  132. package/templates/agent.template.md +65 -0
  133. package/templates/job.template.md +47 -0
  134. package/templates/skill.template.md +28 -0
  135. package/examples/agents/.claude/skills/data-modeling/SKILL.md +0 -99
  136. package/examples/agents/.claude/skills/developer-experience/SKILL.md +0 -99
  137. package/examples/agents/.claude/skills/knowledge-management/SKILL.md +0 -100
  138. package/examples/agents/.claude/skills/pattern-generalization/SKILL.md +0 -102
  139. package/examples/agents/.claude/skills/technical-writing/SKILL.md +0 -129
  140. 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 [<discipline> <track>] Generate AI coding 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
- --output=PATH Output directory (default: current directory)
129
- --preview Show output without writing files
130
- --role=ROLE Generate specific role variant
131
- --all-roles Generate default + all role variants
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 and validate core data
266
+ // Load data for referential integrity checking (without old validation)
272
267
  const data = await loadAllData(dataDir, {
273
- validate: true,
268
+ validate: false,
274
269
  throwOnError: false,
275
270
  });
276
271
 
277
- if (data.validation.valid) {
278
- console.log("✅ Core data validation passed");
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("❌ Core data validation failed");
278
+ console.log("❌ Schema validation failed");
281
279
  hasErrors = true;
282
- for (const e of data.validation.errors) {
283
- console.log(` - [${e.type}] ${e.message}`);
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 (data.validation.warnings.length > 0) {
287
+ if (result.warnings.length > 0) {
288
288
  console.log("\n⚠️ Warnings:");
289
- for (const w of data.validation.warnings) {
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
- ## When to use this skill
11
+ ## Stage Guidance
12
12
 
13
- Use this skill when:
13
+ ### Plan Stage
14
14
 
15
- - Designing new systems or major features
16
- - Evaluating architectural options and trade-offs
17
- - Making decisions about code organization and structure
18
- - Reviewing or improving existing architecture
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
- ## When to use this skill
11
+ ## Stage Guidance
12
12
 
13
- Use this skill when:
13
+ ### Plan Stage
14
14
 
15
- - Deploying applications to cloud environments
16
- - Selecting appropriate cloud services
17
- - Configuring cloud infrastructure
18
- - Optimizing cloud costs and performance
19
- - Implementing cloud security best practices
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
- ## When to use this skill
11
+ ## Stage Guidance
12
12
 
13
- Use this skill when:
13
+ ### Plan Stage
14
14
 
15
- - Reviewing code for quality issues
16
- - Checking code against best practices
17
- - Conducting or assisting with code reviews
18
- - Verifying AI-generated code before committing
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
- ## When to use this skill
11
+ ## Stage Guidance
12
12
 
13
- Use this skill when:
13
+ ### Plan Stage
14
14
 
15
- - Setting up or modifying CI/CD pipelines
16
- - Containerizing applications with Docker
17
- - Managing infrastructure as code
18
- - Troubleshooting deployment failures
19
- - Implementing monitoring and alerting
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
- ## When to use this skill
11
+ ## Stage Guidance
12
12
 
13
- Use this skill when:
13
+ ### Plan Stage
14
14
 
15
- - Building features that span multiple layers
16
- - Implementing end-to-end functionality
17
- - Working across frontend, backend, and infrastructure
18
- - Debugging issues that cross layer boundaries
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