draft-story-markdown
Generate a draft story markdown by analyzing a story tracker or feature description, Figma designs, and the codebase.
Interactive guidance on why human code review is essential for readability and maintainability.
$ npx -y skills add Intai/story-flow --skill learn-review-implementation --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/learn-review-implementationContext preview
The summary Claude sees to decide when to auto-load this skill.
Interactive guidance on why human code review is essential for readability and maintainability.
name: Learn why to review implementation even with 100% test coverage description: Interactive guidance on why human code review is essential for readability and maintainability. user-invocable: false
This learning module helps junior developers understand why, as of today in 2026, human code review remains essential even when AI-generated code has 100% unit test coverage. Tests only verify code doesn't crash - humans must verify correctness, readability, and maintainability.
Present the following content interactively. After each section, use `AskUserQuestion` to offer 3 options:
---
Explain what test coverage measures and its limitations:
**What 100% test coverage proves:**
**That's it.** Coverage doesn't verify correctness - test assertions could be inadequate, wrong, or missing entirely.
**What 100% test coverage does NOT prove:**
**The key insight:**
Tests answer "Does it crash?" not necessarily "Does it work?" or "Is it good code?" All three questions matter.
---
Since 100% coverage only proves code doesn't crash, the test assertions themselves are critical - and they need human review.
// This test "passes" but proves nothing
test('should process order', () => {
const result = processOrder(mockOrder);
expect(result).toBeDefined(); // Weak assertion - just checks it exists
});
// This test passes but has wrong expectation
test('should calculate total', () => {
const total = calculateTotal([10, 20, 30]);
expect(total).toBe(50); // Wrong! Should be 60
});
// This test is missing assertions entirely
test('should update user', async () => {
await updateUser({ id: 1, name: 'John' });
// No assertions - test passes if it doesn't crash
});All three tests pass. None prove correctness.
**1. Are assertions actually verifying behavior?**
**2. Are assertions checking the right values?**
**3. Are critical assertions present?**
**4. Do assertions match requirements?**
---
Present examples of working code that has readability issues:
// Passes tests but hard to understand const d = new Date(); const t = d.getTime(); const x = t - (24 * 60 * 60 * 1000); const r = items.filter(i => i.c > x); // BETTER - Self-documenting const now = new Date(); const currentTimestamp = now.getTime(); const oneDayAgo = currentTimestamp - (24 * 60 * 60 * 1000); const recentItems = items.filter(item => item.createdAt > oneDayAgo);
Both pass the same tests. Only one is readable.
// Passes tests but requires mental parsing
return users.filter(u => u.a && u.r.includes('admin') && !u.d).map(u => ({...u, p: u.p.filter(p => p.e)}));
// BETTER - Step by step
const activeUsers = users.filter(user => user.isActive);
const adminUsers = activeUsers.filter(user => user.roles.includes('admin'));
const nonDeletedAdmins = adminUsers.filter(user => !user.isDeleted);
return nonDeletedAdmins.map(user => ({
...user,
permissions: user.permissions.filter(permission => permission.enabled)
}));// Passes tests but meaning is unclear
if (status === 3 && retries < 5) {
setTimeout(retry, 30000);
}
// BETTER - Named constants explain intent
const STATUS_FAILED = 3;
const MAX_RETRIES = 5;
const RETRY_DELAY_MS = 30000;
if (status === STATUS_FAILED && retries < MAX_RETRIES) {
setTimeout(retry, RETRY_DELAY_MS);
}---
Present examples of code that passes tests but will cause problems later:
// Passes tests but over-engineered for a simple task
interface ConfigurationStrategy {
getConfig(): Config;
}
class JsonConfigStrategy implements ConfigurationStrategy {
getConfig() { return JSON.parse(fs.readFileSync('config.json')); }
}
class ConfigFactory {
static create(type: string): ConfigurationStrategy {
if (type === 'json') return new JsonConfigStrategy();
throw new Error('Unknown type');
}
}
const config = ConfigFactory.create('json').getConfig();
// BETTER - Simple solution for simple problem
const config = JSON.parse(fs.readFileSync('config.json'));// Passes tests but duplicates logic that should be shared
function validateUserEmail(email) {
return email.includes('@') && email.includes('.') && email.length > 5;
}
function validateContactEmail(🤖🧠 Agentic development workflow for AI–HI (Human Intelligence) collaboration
Repo: Intai/story-flow
Generate a draft story markdown by analyzing a story tracker or feature description, Figma designs, and the codebase.
Interactive guidance on writing complete, effective BDD scenarios for story-flow.
Interactive guidance on creating technical design PRs to align with your team before coding.
Parse story markdown to identify task dependencies and parallel execution opportunities.
Execute BDD test scenarios from .feature files using browser automation.