plan-to-tdd — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited plan-to-tdd (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Transform feature plans → test-driven implementation using Outside-In methodology.
Invoke when:
docs/plan/YYYY/MM/ to code.claude/skills/test-levels for Unit/Integration/E2E guidancedocs/plan/YYYY/MM/YYYY_MM_DD_HHmm__FEATURE_NAME.md| Skill | Location | Phase |
|---|---|---|
doc-navigator | .claude/skills/doc-navigator | Load/Design - find existing patterns |
uiux-toolkit | .claude/skills/uiux-toolkit | Verify - 9-domain UX evaluation |
test-levels | .claude/skills/test-levels | Plan/Execute - test distribution |
SYSTEM DESIGN → INTEGRATION TESTS (Red) → TDD UNITS → E2E VALIDATION┌─────────────────────────────────────────────────┐
│ 1. SYSTEM DESIGN │
│ Components → Contracts → Dependencies │
└────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 2. INTEGRATION TESTS (Red) │
│ Validate component contracts - tests FAIL │
└────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 3. TDD UNIT PHASE │
│ Red → Green → Refactor per unit │
└────────────────────┬────────────────────────────┘
▼
┌─────────────────────────────────────────────────┐
│ 4. E2E VALIDATION │
│ Complete user journey verification │
└─────────────────────────────────────────────────┘Input: docs/plan/YYYY/MM/YYYY_MM_DD_HHmm__FEATURE_NAME.md
Extract:
Expected structure:
# Feature: [Name]
## User Story
As a [user], I want to [action] so that [benefit].
## Acceptance Criteria
- [ ] Criterion 1
- [ ] Criterion 2
## Components
- Component A: Description
- Component B: Description
## Data Flow
1. Step 1
2. Step 2For each component boundary:
interface [Component]Contract {
input: {
type: string;
validation: string[];
source: string; // sender component
};
output: {
type: string;
successCase: string;
errorCases: string[];
};
dependencies: string[];
}#### E2E Tests (Complete Car)
// tests/e2e/[feature].spec.ts
describe('[Feature] - User Journey', () => {
test('User can [action] successfully', async () => {
// Arrange → Act → Assert
});
test('User sees error when [condition]', async () => {
// Error path from user perspective
});
});#### Integration Tests (Engine + Transmission)
// tests/integration/[component].test.ts
describe('[ComponentA] → [ComponentB]', () => {
test('Contract: [description]', async () => {
// Validates the "arrow" in system design
});
test('Handles timeout gracefully', async () => {
// Test architectural assumptions
});
});#### Unit Tests (Individual Parts)
// tests/unit/[module].test.ts
describe('[Module]', () => {
test('returns [expected] when [condition]', () => {
// Red → Green → Refactor
});
test('throws [error] when [invalid input]', () => {
// Edge cases
});
});1. Scaffold Create files & empty interfaces
↓
2. E2E (Red) Failing E2E for user journey
↓
3. Integration For each boundary:
(Red) - Failing integration test
- Validates contract
↓
4. TDD Cycle For each unit:
(Red→Green→ - Failing unit test
Refactor) - Min code to pass
- Refactor for clarity
↓
5. Integration Run integration (should pass)
(Green)
↓
6. E2E (Green) Run E2E (should pass)
↓
7. Refactor Clean up, optimizeSystem design arrow becomes mock:
┌─────────────┐ ┌─────────────┐
│ OrderService│───▶│InventorySvc│
└─────────────┘ └─────────────┘const mockInventoryService = {
checkStock: jest.fn(),
};
describe('OrderService', () => {
test('throws OutOfStockException when inventory = 0', () => {
mockInventoryService.checkStock.mockReturnValue(0);
expect(() => orderService.placeOrder(item))
.toThrow(OutOfStockException);
});
});Key insight: TDD validates architectural contracts:
| Pain Signal | Design Issue | Fix |
|---|---|---|
| 50+ lines mock setup | Too coupled | Split into smaller services |
| Needs real DB | Missing abstraction | Add repository interface |
| Can't test isolated | Circular deps | Restructure dependency graph |
| Brittle tests | Leaky abstractions | Strengthen contracts |
When pain detected:
Generate in /docs/features/[feature]/:
DESIGN.md - System design docCONTRACTS.md - Interface contractsTEST-PLAN.md - Test structure & orderIMPLEMENTATION.md - Build plan w/ tasks# Load & parse plan
/load-plan [plan-path]
# Extract components
/extract-components [plan-path]
# Generate contracts
/define-contracts [plan-path]
# Generate test scaffolds
/generate-tests [plan-path]
# Start TDD w/ first red test
/tdd-start [plan-path]
# List plans
/list-plans
/list-plans --month 2024-03| Level | Question | Location |
|---|---|---|
| Unit | "Does this fn work?" | tests/unit/ |
| Integration | "Do parts connect?" | tests/integration/ |
| E2E | "Does flow work?" | tests/e2e/ |
Pyramid: Many unit → Some integration → Few E2E
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.