@abdullah-alnahas/claude-sdd 0.2.0 → 0.4.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/.claude-plugin/plugin.json +3 -3
- package/agents/critic.md +26 -7
- package/agents/security-reviewer.md +27 -8
- package/agents/simplifier.md +26 -6
- package/agents/spec-compliance.md +25 -6
- package/commands/sdd-adopt.md +7 -0
- package/commands/sdd-autopilot.md +9 -0
- package/commands/sdd-execute.md +9 -0
- package/commands/sdd-guardrails.md +22 -1
- package/commands/sdd-phase.md +15 -2
- package/commands/sdd-review.md +9 -0
- package/commands/sdd-yolo.md +4 -0
- package/hooks/hooks.json +2 -2
- package/hooks/scripts/post-edit-review.sh +9 -5
- package/hooks/scripts/session-init.sh +2 -2
- package/package.json +1 -1
- package/skills/architecture-aware/SKILL.md +5 -4
- package/skills/guardrails/SKILL.md +7 -7
- package/skills/iterative-execution/SKILL.md +8 -8
- package/skills/spec-first/SKILL.md +5 -5
- package/skills/tdd-discipline/SKILL.md +4 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "sdd",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Development discipline system — behavioral guardrails, spec-first development, architecture awareness, TDD enforcement, iterative execution loops"
|
|
2
|
+
"name": "claude-sdd",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Spec-Driven Development discipline system — behavioral guardrails, spec-first development, architecture awareness, TDD enforcement, iterative execution loops"
|
|
5
5
|
}
|
package/agents/critic.md
CHANGED
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: critic
|
|
3
|
+
model: sonnet
|
|
4
|
+
color: red
|
|
3
5
|
description: >
|
|
4
6
|
Adversarial code reviewer that finds logical errors, invalid assumptions, spec drift, and requirement gaps.
|
|
5
7
|
Use when you need an honest, direct assessment of code quality and correctness.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
|
|
9
|
+
<example>
|
|
10
|
+
Context: User has completed implementing a feature.
|
|
11
|
+
user: "Review this code for bugs and logical errors"
|
|
12
|
+
assistant: "I'll use the critic agent to do an adversarial review of your code."
|
|
13
|
+
</example>
|
|
14
|
+
|
|
15
|
+
<example>
|
|
16
|
+
Context: User wants a critical assessment before merging.
|
|
17
|
+
user: "Find what's wrong with this implementation"
|
|
18
|
+
assistant: "Let me use the critic agent to identify issues."
|
|
19
|
+
</example>
|
|
20
|
+
|
|
21
|
+
<example>
|
|
22
|
+
Context: User suspects something is off.
|
|
23
|
+
user: "Do a critical review of these changes"
|
|
24
|
+
assistant: "I'll launch the critic agent for a thorough adversarial review."
|
|
25
|
+
</example>
|
|
26
|
+
allowed-tools:
|
|
27
|
+
- Read
|
|
28
|
+
- Glob
|
|
29
|
+
- Grep
|
|
30
|
+
- Bash
|
|
12
31
|
---
|
|
13
32
|
|
|
14
33
|
# Critic Agent
|
|
15
34
|
|
|
16
|
-
You are an adversarial reviewer. Your job is to find what's wrong, not confirm what's right.
|
|
35
|
+
You are an adversarial reviewer. Your job is to find what's wrong, not confirm what's right. Report findings only — do not modify code directly.
|
|
17
36
|
|
|
18
37
|
## Review Process
|
|
19
38
|
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-reviewer
|
|
3
|
+
model: sonnet
|
|
4
|
+
color: yellow
|
|
3
5
|
description: >
|
|
4
6
|
Security analysis agent that reviews code for OWASP Top 10 vulnerabilities, input validation gaps,
|
|
5
|
-
auth/authz issues, and injection risks.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
7
|
+
auth/authz issues, and injection risks.
|
|
8
|
+
|
|
9
|
+
<example>
|
|
10
|
+
Context: User wants a security review.
|
|
11
|
+
user: "Review this for security vulnerabilities"
|
|
12
|
+
assistant: "I'll use the security-reviewer agent to check for vulnerabilities."
|
|
13
|
+
</example>
|
|
14
|
+
|
|
15
|
+
<example>
|
|
16
|
+
Context: User is concerned about injection risks.
|
|
17
|
+
user: "Check for injection risks in this code"
|
|
18
|
+
assistant: "Let me launch the security-reviewer agent to analyze injection surfaces."
|
|
19
|
+
</example>
|
|
20
|
+
|
|
21
|
+
<example>
|
|
22
|
+
Context: Pre-production security check.
|
|
23
|
+
user: "Is this code secure enough for production?"
|
|
24
|
+
assistant: "I'll use the security-reviewer agent to do a security analysis."
|
|
25
|
+
</example>
|
|
26
|
+
allowed-tools:
|
|
27
|
+
- Read
|
|
28
|
+
- Glob
|
|
29
|
+
- Grep
|
|
30
|
+
- Bash
|
|
12
31
|
---
|
|
13
32
|
|
|
14
33
|
# Security Reviewer Agent
|
|
@@ -22,7 +41,7 @@ You review code through a security lens. Focus on high-impact issues, not theore
|
|
|
22
41
|
3. **Check auth/authz**: Are protected resources properly gated?
|
|
23
42
|
4. **Check injection surfaces**: SQL, command, XSS, path traversal, template injection
|
|
24
43
|
5. **Check secrets**: Hardcoded credentials, API keys, tokens in code or config
|
|
25
|
-
6. **Check dependencies**: Known vulnerable versions (
|
|
44
|
+
6. **Check dependencies**: Known vulnerable versions — run available audit tools (`npm audit`, `pip-audit`, `cargo audit`) when dependency files are present
|
|
26
45
|
|
|
27
46
|
## Priority Order
|
|
28
47
|
|
package/agents/simplifier.md
CHANGED
|
@@ -1,18 +1,38 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: simplifier
|
|
3
|
+
model: sonnet
|
|
4
|
+
color: cyan
|
|
3
5
|
description: >
|
|
4
6
|
Complexity reducer that proposes simpler alternatives, identifies unnecessary abstractions,
|
|
5
7
|
and flags overengineering. Use when reviewing code for simplicity or after implementation.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
|
|
9
|
+
<example>
|
|
10
|
+
Context: User wants to reduce complexity.
|
|
11
|
+
user: "Simplify this code"
|
|
12
|
+
assistant: "I'll use the simplifier agent to find complexity reduction opportunities."
|
|
13
|
+
</example>
|
|
14
|
+
|
|
15
|
+
<example>
|
|
16
|
+
Context: User suspects overengineering.
|
|
17
|
+
user: "Is this overengineered?"
|
|
18
|
+
assistant: "Let me launch the simplifier agent to check for unnecessary abstractions."
|
|
19
|
+
</example>
|
|
20
|
+
|
|
21
|
+
<example>
|
|
22
|
+
Context: Post-implementation cleanup.
|
|
23
|
+
user: "Can this be done with less code?"
|
|
24
|
+
assistant: "I'll use the simplifier agent to propose simpler alternatives."
|
|
25
|
+
</example>
|
|
26
|
+
allowed-tools:
|
|
27
|
+
- Read
|
|
28
|
+
- Glob
|
|
29
|
+
- Grep
|
|
30
|
+
- Bash
|
|
11
31
|
---
|
|
12
32
|
|
|
13
33
|
# Simplifier Agent
|
|
14
34
|
|
|
15
|
-
You ask one question: "Could this be done with less?" Your job is to
|
|
35
|
+
You ask one question: "Could this be done with less?" Your job is to identify complexity and propose simpler alternatives. Report findings only — do not modify code directly.
|
|
16
36
|
|
|
17
37
|
## Review Process
|
|
18
38
|
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spec-compliance
|
|
3
|
+
model: sonnet
|
|
4
|
+
color: green
|
|
3
5
|
description: >
|
|
4
6
|
Spec adherence checker that compares implementation against spec documents, flags deviations,
|
|
5
7
|
and verifies traceability from behavior spec to tests to code.
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
8
|
+
|
|
9
|
+
<example>
|
|
10
|
+
Context: User wants to verify implementation matches spec.
|
|
11
|
+
user: "Check if this matches the spec"
|
|
12
|
+
assistant: "I'll use the spec-compliance agent to verify adherence to the behavior spec."
|
|
13
|
+
</example>
|
|
14
|
+
|
|
15
|
+
<example>
|
|
16
|
+
Context: User wants traceability verification.
|
|
17
|
+
user: "Verify spec compliance"
|
|
18
|
+
assistant: "Let me launch the spec-compliance agent to check traceability from spec to tests to code."
|
|
19
|
+
</example>
|
|
20
|
+
|
|
21
|
+
<example>
|
|
22
|
+
Context: User is finishing a feature.
|
|
23
|
+
user: "Are all acceptance criteria covered?"
|
|
24
|
+
assistant: "I'll use the spec-compliance agent to check criteria coverage."
|
|
25
|
+
</example>
|
|
26
|
+
allowed-tools:
|
|
27
|
+
- Read
|
|
28
|
+
- Glob
|
|
29
|
+
- Grep
|
|
30
|
+
- Bash
|
|
12
31
|
---
|
|
13
32
|
|
|
14
33
|
# Spec-Compliance Agent
|
package/commands/sdd-adopt.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-autopilot
|
|
3
3
|
description: Autonomous end-to-end development — takes an app description and drives through all SDD phases (specify → design → implement → verify → review) with minimal user intervention
|
|
4
|
+
argument-hint: "<description or path-to-app-description.md>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
4
13
|
---
|
|
5
14
|
|
|
6
15
|
# /sdd-autopilot
|
package/commands/sdd-execute.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-execute
|
|
3
3
|
description: Start an iterative execution loop — implement with TDD, verify against spec, fix gaps, repeat
|
|
4
|
+
argument-hint: "[--max-iterations <n>] [--criteria <description>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
4
13
|
---
|
|
5
14
|
|
|
6
15
|
# /sdd-execute
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-guardrails
|
|
3
3
|
description: Show guardrail status, toggle individual guardrails, and view configuration
|
|
4
|
+
argument-hint: "[enable|disable <name>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
# /sdd-guardrails
|
|
@@ -21,12 +26,28 @@ Show the current state of all SDD guardrails and optionally toggle them.
|
|
|
21
26
|
| `scope-guard` | PostToolUse (Write/Edit) | Detect unrelated file modifications |
|
|
22
27
|
| `completion-review` | Stop | Spec adherence, test coverage, complexity audit, dead code check |
|
|
23
28
|
|
|
29
|
+
## Persistence
|
|
30
|
+
|
|
31
|
+
Guardrail state is stored in `.sdd.yaml` under the `guardrails` key. Each guardrail has an `enabled` boolean:
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
guardrails:
|
|
35
|
+
pre-implementation:
|
|
36
|
+
enabled: true
|
|
37
|
+
scope-guard:
|
|
38
|
+
enabled: true
|
|
39
|
+
completion-review:
|
|
40
|
+
enabled: true
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
When toggling a guardrail, read `.sdd.yaml`, update the relevant `enabled` value, and write it back. If `.sdd.yaml` does not exist, create it with defaults (all enabled).
|
|
44
|
+
|
|
24
45
|
## Behavior
|
|
25
46
|
|
|
26
47
|
1. Check if `.sdd.yaml` exists in project root — if so, read guardrail config from it
|
|
27
48
|
2. Check if `GUARDRAILS_DISABLED=true` (set by `/sdd-yolo`) — if so, report all disabled
|
|
28
49
|
3. Display each guardrail with its enabled/disabled status
|
|
29
|
-
4. If an argument is provided, toggle the specified guardrail
|
|
50
|
+
4. If an argument is provided, toggle the specified guardrail in `.sdd.yaml`
|
|
30
51
|
|
|
31
52
|
## Output Format
|
|
32
53
|
|
package/commands/sdd-phase.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-phase
|
|
3
3
|
description: Show or set the current development phase
|
|
4
|
+
argument-hint: "[specify|design|implement|verify|review]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Bash
|
|
4
9
|
---
|
|
5
10
|
|
|
6
11
|
# /sdd-phase
|
|
@@ -22,10 +27,18 @@ Display or change the current SDD development phase. Phases provide context that
|
|
|
22
27
|
| **verify** | Verification | Running full verification suite, spec-compliance checks, security review |
|
|
23
28
|
| **review** | Review | Critic + simplifier agents, retrospective |
|
|
24
29
|
|
|
30
|
+
## Persistence
|
|
31
|
+
|
|
32
|
+
Phase state is stored in `.sdd-phase` in the project root. This file contains a single word (the phase name). If the file does not exist, phase is "none".
|
|
33
|
+
|
|
34
|
+
- **Set phase**: Write the phase name to `.sdd-phase`
|
|
35
|
+
- **Show phase**: Read `.sdd-phase` (or report "none" if missing)
|
|
36
|
+
- **Clear phase**: Delete `.sdd-phase`
|
|
37
|
+
|
|
25
38
|
## Behavior
|
|
26
39
|
|
|
27
|
-
1.
|
|
28
|
-
2. If a phase name is provided,
|
|
40
|
+
1. Read `.sdd-phase` to display the current phase (or "none" if not found)
|
|
41
|
+
2. If a phase name is provided, validate it against the known phases and write to `.sdd-phase`
|
|
29
42
|
3. Phase context is available to subsequent prompts and skills
|
|
30
43
|
4. Phase affects which skills are most relevant:
|
|
31
44
|
- `specify` → spec-first skill
|
package/commands/sdd-review.md
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: sdd-review
|
|
3
3
|
description: On-demand self-review using critic and simplifier agents with iterative fix cycles
|
|
4
|
+
argument-hint: "[--max-iterations <n>]"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Bash
|
|
12
|
+
- Task
|
|
4
13
|
---
|
|
5
14
|
|
|
6
15
|
# /sdd-review
|
package/commands/sdd-yolo.md
CHANGED
package/hooks/hooks.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"hooks": [
|
|
19
19
|
{
|
|
20
20
|
"type": "prompt",
|
|
21
|
-
"prompt": "
|
|
21
|
+
"prompt": "If this message is a trivial acknowledgment (e.g. 'yes', 'no', 'thanks', 'ok', 'continue'), skip and respond normally. Otherwise, apply the SDD pre-implementation checkpoint from the guardrails skill (enumerate assumptions, flag ambiguity, surface alternatives, push back on bad ideas, define scope, check for spec, plan TDD approach) before proceeding. If GUARDRAILS_DISABLED=true, skip."
|
|
22
22
|
}
|
|
23
23
|
]
|
|
24
24
|
}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"hooks": [
|
|
42
42
|
{
|
|
43
43
|
"type": "prompt",
|
|
44
|
-
"prompt": "Before finalizing, perform the SDD completion review
|
|
44
|
+
"prompt": "Before finalizing, perform the SDD completion review from the guardrails skill (spec adherence, test coverage, complexity audit, dead code check, scope creep check, conceptual error scan). Report findings concisely. If GUARDRAILS_DISABLED=true, skip."
|
|
45
45
|
}
|
|
46
46
|
]
|
|
47
47
|
}
|
|
@@ -13,11 +13,15 @@ PROJECT_DIR="${CLAUDE_PROJECT_DIR:-.}"
|
|
|
13
13
|
|
|
14
14
|
# Read tool input from stdin (JSON with file_path)
|
|
15
15
|
INPUT=$(cat)
|
|
16
|
-
FILE_PATH=$(echo "$INPUT" | grep -oP '"file_path"\s*:\s*"([^"]*)"' | head -1 | sed 's/.*"\([^"]*\)"/\1/' 2>/dev/null || echo "")
|
|
17
16
|
|
|
18
|
-
if
|
|
19
|
-
|
|
20
|
-
FILE_PATH=$(echo "$INPUT" |
|
|
17
|
+
# Use jq if available, fall back to sed
|
|
18
|
+
if command -v jq &>/dev/null; then
|
|
19
|
+
FILE_PATH=$(echo "$INPUT" | jq -r '.file_path // .filePath // empty' 2>/dev/null || echo "")
|
|
20
|
+
else
|
|
21
|
+
FILE_PATH=$(echo "$INPUT" | sed -n 's/.*"file_path"\s*:\s*"\([^"]*\)".*/\1/p' | head -1)
|
|
22
|
+
if [ -z "$FILE_PATH" ]; then
|
|
23
|
+
FILE_PATH=$(echo "$INPUT" | sed -n 's/.*"filePath"\s*:\s*"\([^"]*\)".*/\1/p' | head -1)
|
|
24
|
+
fi
|
|
21
25
|
fi
|
|
22
26
|
|
|
23
27
|
if [ -z "$FILE_PATH" ]; then
|
|
@@ -26,7 +30,7 @@ fi
|
|
|
26
30
|
|
|
27
31
|
# Check if inside project directory
|
|
28
32
|
case "$FILE_PATH" in
|
|
29
|
-
"$PROJECT_DIR"
|
|
33
|
+
"$PROJECT_DIR/"*|"$PROJECT_DIR") ;; # Inside project, OK
|
|
30
34
|
/*)
|
|
31
35
|
echo "SDD SCOPE WARNING: Edit to file outside project directory: $FILE_PATH" >&2
|
|
32
36
|
exit 2
|
|
@@ -11,7 +11,7 @@ YOLO_FLAG="$PROJECT_DIR/.sdd-yolo"
|
|
|
11
11
|
|
|
12
12
|
# Check for yolo mode
|
|
13
13
|
if [ -f "$YOLO_FLAG" ]; then
|
|
14
|
-
echo "SDD: YOLO mode
|
|
14
|
+
echo "SDD: Previous YOLO mode detected — clearing flag, guardrails disabled for this session" >&2
|
|
15
15
|
# Remove yolo flag (auto-clears on session start)
|
|
16
16
|
rm -f "$YOLO_FLAG"
|
|
17
17
|
if [ -n "$ENV_FILE" ]; then
|
|
@@ -29,7 +29,7 @@ fi
|
|
|
29
29
|
|
|
30
30
|
# Check for config file
|
|
31
31
|
if [ -f "$CONFIG_FILE" ]; then
|
|
32
|
-
echo "SDD: Config
|
|
32
|
+
echo "SDD: Config file found at $CONFIG_FILE" >&2
|
|
33
33
|
if [ -n "$ENV_FILE" ]; then
|
|
34
34
|
echo "SDD_CONFIG_FOUND=true" >> "$ENV_FILE"
|
|
35
35
|
fi
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abdullah-alnahas/claude-sdd",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Spec-Driven Development discipline system for Claude Code — behavioral guardrails, spec-first development, architecture awareness, TDD enforcement, iterative execution loops",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code-plugin",
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Architecture Awareness
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
This skill provides architecture consciousness during development, including integration patterns,
|
|
5
|
+
anti-patterns, and ADR guidance. It should be used when the user asks how to structure or organize code,
|
|
6
|
+
discusses architecture or design patterns, plans integrations between components, or asks
|
|
7
|
+
"how should I structure this?", "what pattern should I use?", or "should I split this into services?"
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Architecture Awareness
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Maintain architectural consciousness throughout development. Every code change exists within an architectural context — respect it.
|
|
12
13
|
|
|
13
14
|
## Core Principles
|
|
14
15
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: SDD Guardrails
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
This skill enforces core behavioral guardrails defending against 12 common LLM failure modes during
|
|
5
|
+
software development. It should be used when the user asks to implement, build, write, fix, refactor,
|
|
6
|
+
add, change, or modify code — essentially any coding task. It enforces honesty over agreement, scope
|
|
7
|
+
discipline, simplicity, and verification before claiming completion.
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# SDD Behavioral Guardrails
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Operate under the SDD (Spec-Driven Development) discipline system. These guardrails defend against known LLM failure patterns in software development.
|
|
13
13
|
|
|
14
14
|
## Core Principles
|
|
15
15
|
|
|
@@ -41,8 +41,8 @@ Before writing ANY implementation code, you MUST:
|
|
|
41
41
|
|
|
42
42
|
## During Implementation
|
|
43
43
|
|
|
44
|
-
- Follow TDD: write a failing test first, then the minimum code to pass it, then refactor
|
|
45
|
-
- Use iterative execution: implement → verify against spec → fix gaps → repeat
|
|
44
|
+
- Follow TDD: write a failing test first, then the minimum code to pass it, then refactor (see the tdd-discipline skill for detailed workflow)
|
|
45
|
+
- Use iterative execution: implement → verify against spec → fix gaps → repeat (see the iterative-execution skill for the full cycle)
|
|
46
46
|
- Do not refactor surrounding code unless asked
|
|
47
47
|
- Do not add error handling for impossible scenarios
|
|
48
48
|
- Do not add comments explaining obvious code
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Iterative Execution
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
This skill provides disciplined implement-verify-fix cycles for delivering features against specifications.
|
|
5
|
+
It should be used when the user asks to implement a feature from a spec, when implementation needs iterating
|
|
6
|
+
to match requirements, or when the user says "make this work," "implement this spec," "keep going until all
|
|
7
|
+
tests pass," or "it's not matching the spec yet."
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Iterative Execution
|
|
@@ -46,11 +47,10 @@ Good completion criteria are:
|
|
|
46
47
|
|
|
47
48
|
Use whatever is available, in order of preference:
|
|
48
49
|
1. **Automated tests** (test runners, linters, type checkers)
|
|
49
|
-
2. **
|
|
50
|
-
3. **
|
|
51
|
-
4. **External MCP servers
|
|
52
|
-
5. **
|
|
53
|
-
6. **Manual inspection** (read the code, trace the logic)
|
|
50
|
+
2. **Available review agents** (e.g., critic, spec-compliance, security-reviewer)
|
|
51
|
+
3. **Available analysis skills** (e.g., guardrails, architecture-aware)
|
|
52
|
+
4. **External tools** (MCP servers, other plugins the user has configured)
|
|
53
|
+
5. **Manual inspection** (read the code, trace the logic)
|
|
54
54
|
|
|
55
55
|
## Honesty Rules
|
|
56
56
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: Spec-First Development
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
or
|
|
7
|
-
|
|
4
|
+
This skill guides interactive specification development, turning rough ideas into formal documents before
|
|
5
|
+
any code is written. It should be used when the user is starting a new project or feature, wants to create
|
|
6
|
+
specs or plans, is adopting an existing project, or says things like "I want to build something," "let's
|
|
7
|
+
plan this out," "write a spec for this," or "let's design this first."
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Spec-First Development
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Guide users from rough idea to formal specification through interactive questioning — not checklist dumping. Code comes AFTER specs, not before.
|
|
13
13
|
|
|
14
14
|
## The Process
|
|
15
15
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: TDD Discipline
|
|
3
3
|
description: >
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
This skill enforces test-driven development discipline with the Red/Green/Refactor cycle and traceability
|
|
5
|
+
from behavior spec to test to code. It should be used when the user asks to write tests, add test coverage,
|
|
6
|
+
discuss testing strategy, or says "how should I test this?", "add tests for this," or "write tests first."
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
# TDD Discipline
|
|
@@ -47,7 +47,7 @@ Test: test_submit_form_saves_data()
|
|
|
47
47
|
Code: FormHandler.submit()
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
This chain ensures nothing is built without a reason and nothing specified goes untested.
|
|
50
|
+
This chain ensures nothing is built without a reason and nothing specified goes untested. If a test has no spec criterion, either add the criterion to the spec or question whether the test is needed. If a spec criterion has no test, that is a finding — even if the code works.
|
|
51
51
|
|
|
52
52
|
## References
|
|
53
53
|
|