A two-phase team loop that produces production-quality code: implement, then audit using simplify + harden passes, then fix audit findings, then re-audit, repeating until the codebase is solid or the loop cap is reached.
Works with
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionagent-teams-simplify-and-hardenExecute the skills CLI command in your project's root directory to begin installation:
Fetches agent-teams-simplify-and-harden from pskoett/pskoett-ai-skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
Restart Cursor to activate agent-teams-simplify-and-harden. Access via /agent-teams-simplify-and-harden in your agent's command palette.
We perform automated surface-level scans (Gen AI Scanner, Socket, Snyk) during installation. These checks detect common vulnerabilities but do not guarantee complete security. Always review skill source code and verify the publisher's reputation before production use.
Skills execute code in your environment. Always review source, verify the publisher, and test in isolation before production.
Submit your Claude Code skill and start earning
Create detailed user stories, acceptance criteria, and feature specs
Example
Generate user stories for 'password reset feature' with acceptance criteria, edge cases, and test scenarios
Reduce spec writing time by 50%, ensure comprehensive coverage
Research competitors, compare features, identify gaps
Example
Analyze 5 competitor products, create feature comparison matrix, suggest differentiation opportunities
Complete competitive research in 2 hours instead of 2 days
Evaluate features using frameworks (RICE, ICE, Kano) and create prioritized backlogs
Example
Score 20 feature ideas using RICE framework, generate prioritized roadmap with rationale
0
total installs
0
this week
104
GitHub stars
0
upvotes
Run in your terminal
0
installs
0
this week
104
stars
npx skills add pskoett/pskoett-ai-skills/skills/agent-teams-simplify-and-harden
A two-phase team loop that produces production-quality code: implement, then audit using simplify + harden passes, then fix audit findings, then re-audit, repeating until the codebase is solid or the loop cap is reached.
This skill replaces stages 2–4 of the standard pipeline (execution, review, learning) with a team-based loop. It can follow plan-interview or run standalone — every upstream artifact is optional.
[plan-interview] → [agent-teams-simplify-and-harden] → [self-improvement]
├─ intent frame (team lead)
├─ implement (parallel agents)
├─ audit (parallel agents)
├─ drift check (team lead, between rounds)
└─ learning loop output → self-improvement
When a plan file from plan-interview exists, the skill extracts tasks from it. When no plan exists, the team lead runs a brief inline planning phase. Context-surfing runs as a lightweight drift check for the team lead between loop rounds — sub-agents are short-lived and don't need it.
┌──────────────────────────────────────────────────────────┐
│ TEAM LEAD (you) │
│ │
│ Phase 1: IMPLEMENT (+ document pass on fix rounds) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ impl-1 │ │ impl-2 │ │ impl-3 │ ... │
│ │ (general │ │ (general │ │ (general │ │
│ │ purpose) │ │ purpose) │ │ purpose) │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────┐ │
│ │ Verify: compile + tests │ │
│ └─────────────────────────────────────┘ │
│ │ │
│ Phase 2: SIMPLIFY & HARDEN AUDIT │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ simplify │ │ harden │ │ spec │ ... │
│ │ auditor │ │ auditor │ │ auditor │ │
│ │ (Explore)│ │ (Explore)│ │ (Explore)│ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ Exit conditions met? │
│ YES → Produce summary. Ship it. │
│ NO → back to Phase 1 with findings as tasks │
│ (max 3 audit rounds) │
└──────────────────────────────────────────────────────────┘
The loop exits when ANY of these are true:
low -- fix them inline (team lead or a single impl agent) and exit without re-auditingBudget guidance: Track the cumulative diff growth across rounds. If fix rounds have added more than 30% on top of the original implementation diff, tighten the scope: skip medium/low simplify findings and focus only on harden patches and spec gaps.
If a plan file exists (from plan-interview at docs/plans/plan-NNN-<slug>.md or user-provided): read it, extract the implementation checklist, and use those as the task list for step 2.
If no plan exists, run a brief inline planning interview:
Turn the answers into a concrete task list. This is not a full plan-interview — just enough to break the work into parallelizable units.
Intent frame: Before creating the team, the team lead emits:
## Intent Frame #1
**Outcome:** [What the team session will deliver]
**Approach:** [Team structure, number of agents, audit dimensions]
**Constraints:** [Scope boundaries, loop cap, budget limits]
**Success criteria:** [Clean audit or loop cap with all critical/high resolved]
**Estimated complexity:** [Small / Medium / Large — based on task count and file count]
Confirm with the user before proceeding. This anchors all subsequent drift checks.
TeamCreate:
team_name: "<project>-harden"
description: "Implement and harden <description>"
Break the work into discrete, parallelizable tasks. Each task should be independent enough for one agent to complete without blocking on others.
TaskCreate for each unit of work:
subject: "Implement <specific thing>"
description: "Detailed requirements, file paths, acceptance criteria"
activeForm: "Implementing <thing>"
Set up dependencies if needed:
TaskUpdate: { taskId: "2", addBlockedBy: ["1"] }
Spawn general-purpose agents (they can read, write, and edit files). One per task or one per logical group. Run them in parallel.
Task tool (spawn teammate):
subagent_type: general-purpose
team_name: "<project>-harden"
name: "impl-<area>"
mode: bypassPermissions
prompt: |
You are an implementation agent on the <project>-harden team.
Your name is impl-<area>.
Check TaskList for your assigned tasks and complete them.
After completing each task, mark it completed and check for more.
Quality gates:
- Code must compile cleanly (substitute your project's compile
command, e.g. bunx tsc --noEmit, cargo build, go build ./...)
- Tests must pass (substitute your project's test command,
e.g. bun test, pytest, go test ./...)
- Follow existing code patterns and conventions
When all your tasks are done, notify the team lead.
Monitor agent messages. When all implementation agents report done:
Before spawning auditors, collect the list of files modified in this session:
git diff --name-only <base-branch> # or: git diff --name-only HEAD~N
You will pass this file list to each auditor.
Spawn Explore agents (read-only -- they cannot edit files, which prevents them from "fixing" issues silently). Each auditor covers a different concern using the Simplify & Harden methodology.
Recommended audit dimensions:
| Auditor | Focus | Mindset |
|---|---|---|
| simplify-auditor | Code clarity and unnecessary complexity | "Is there a simpler way to express this?" |
| harden-auditor | Security and resilience gaps | "If someone malicious saw this, what would they try?" |
| spec-auditor | Implementation vs spec/plan completeness | "Does the code match what was asked for?" |
Full prompt templates for each auditor are in references/auditor-prompts.md. Each prompt enforces: read-only scope, fresh-eyes start, structured finding format, and explicit zero-findings reporting.
Spawned as Explore agent. Checks: dead code, naming, control flow, API surface, over-abstraction, consolidation. Categorizes findings as cosmetic or refactor (refactor bar: "clearly wrong, not just imperfect"). Reports file, line, category, fix, severity.
Spawned as Explore agent. Checks: input validation, error handling, injection vectors, auth/authz, secrets, data exposure, dependency risk, race conditions. Categorizes findings as patch or security refactor. Reports file, line, category, severity, attack vector, fix.
Spawned as Explore agent. Checks: missing features, incorrect behavior, incomplete implementation, contract violations, test coverage, acceptance criteria gaps. Categorizes findings as missing, incorrect, incomplete, or untested. Reports file, line, category, spec reference, severity.
Collect findings from all auditors. For each finding:
Refactor gate: For findings categorized as refactor or security refactor, evaluate whether the refactor is genuinely necessary before creating a task. The bar: "Would a senior engineer say the current state is clearly wrong, not just imperfect?" Reject refactor proposals that are style preferences or marginal improvements.
Exit check: If all findings in this round are severity low, fix them inline and skip re-auditing (see Loop Limits).
When creating fix tasks, bundle a document pass into each implementation agent's work:
After fixing your assigned issues, add up to 5 single-line comments across the files you touched on non-obvious decisions:
- Logic that needs more than 5 seconds of "why does this exist?" thought
- Workarounds or hacks, with context and a TODO for removal conditions
- Performance choices and why the current approach was picked
Do NOT comment on the audit fixes themselves -- only on decisions from the original implementation that lack explanation.
This keeps the document pass lightweight and scoped. Auditors in subsequent rounds should not flag these comments as findings.
If there are findings to fix:
When exit conditions are met:
// TODO or // FIXME comments introduced without corresponding tasksProduce a final summary for the session:
## Hardening Summary
**Audit rounds completed:** 2 of 3 max
**Exit reason:** Clean audit (all auditors reported zero findings)
### Findings by round
Round 1:
- simplify-auditor: 4 cosmetic, 1 refactor (rejected -- style preference)
- harden-auditor: 2 patches, 1 security refactor (approved)
- spec-auditor: 1 missing feature
Round 2:
- simplify-auditor: 0 findings
- harden-auditor: 0 findings
- spec-auditor: 0 findings
### Actions taken
- Fixed: 6 findings (4 cosmetic, 2 patches, 1 security refactor, 1 missing feature -- rejected refactor excluded)
- Skipped: 1 refactor proposal (reason: style preference, not a defect)
- Document pass: 3 comments added across 2 files
### Unresolved
- None
### Out-of-scope observations
- <any out-of-scope items auditors flagged, for future reference>
### Learning loop
learning_loop:
target_skill: "self-improvement"
candidates:
- pattern_key: "harden.input_validation"
auditor: "harden-auditor"
rounds_to_resolve: 1
severity: "high"
suggested_rule: "Validate and bound-check external inputs before use."
- pattern_key: "simplify.dead_code"
auditor: "simplify-auditor"
rounds_to_resolve: 1
severity: "low"
suggested_rule: "Remove dead code and unused imports before finalizing."
Normalize recurring audit findings across rounds into pattern_key entries using the same format as simplify-and-harden. This feeds into self-improvement for cross-task pattern tracking and promotion.
Adapt the format to your context. The goal is a clear record of what was found, what was fixed, what was skipped and why, and what remains.
Send shutdown requests to all agents, then delete the team:
SendMessage type: shutdown_request to each agent
TeamDelete
| Codebase / Task Size | Impl Agents | Audit Agents |
|---|---|---|
| Small (< 10 files) | 1-2 | 2 (simplify + harden) |
| Medium (10-30 files) | 2-3 | 2-3 |
| Large (30+ files) | 3-5 | 3 (simplify + harden + spec) |
More agents = more parallelism but more coordination overhead. For most tasks, 2-3 implementation agents and 2-3 auditors is the sweet spot.
general-purpose -- they need write accessExplore -- read-only prevents them from silently "fixing" things, which defeats the purpose of auditingowner on tasks via TaskUpdate so agents know what to work on immediately0. Plan: Read spec (or run inline interview), break into 8 tasks
0b. Emit Intent Frame #1, confirm with user
1. TeamCreate: "feature-harden"
2. TaskCreate x8 (one per feature)
3. Spawn 3 impl agents, assign ~3 tasks each
4. Wait → all done → compile clean → tests pass
5. Collect modified file list (git diff --name-only)
6. Spawn 3 auditors: simplify-auditor, harden-auditor, spec-auditor
7. Simplify-auditor finds 4 cosmetic + 1 refactor proposal
8. Harden-auditor finds 2 patches + 1 security refactor
9. Spec-auditor finds 1 missing feature
10. Team lead evaluates refactors (approve security refactor,
reject simplify refactor), creates fix + document tasks
11. Spawn 2 impl agents for fixes
12. Wait → compile clean → tests pass
13. Drift check: re-read intent frame, scope looks good
14. Round 2: Spawn 3 fresh auditors
15. Auditors find 0 issues → exit condition met
16. Produce hardening summary + learning loop output
17. Shutdown agents, TeamDelete
These must pass before the loop can exit:
Make data-driven prioritization decisions faster
Draft PRDs, status updates, and stakeholder presentations
Example
Create executive summary of Q3 roadmap, monthly progress report, feature launch announcement
Save 3-5 hours/week on communication overhead
Prerequisites
Time Estimate
30-60 minutes to see productivity improvements
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use for user story writing, competitive research, roadmap prioritization, stakeholder communication, and PRD drafting. Best for reducing repetitive documentation and research work.
✗ Avoid when
Avoid for strategic product vision (requires deep customer empathy), pricing decisions (needs market and financial expertise), or when face-to-face customer discovery is more valuable than speed.
mattpocock/skills
parcadei/continuous-claude-v3
cursor/plugins
ailabs-393/ai-labs-claude-skills
pproenca/dot-skills
mattpocock/skills
agent-teams-simplify-and-harden is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
I recommend agent-teams-simplify-and-harden for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
Solid pick for teams standardizing on skills: agent-teams-simplify-and-harden is focused, and the summary matches what you get after install.
agent-teams-simplify-and-harden has been reliable in day-to-day use. Documentation quality is above average for community skills.
agent-teams-simplify-and-harden is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Keeps context tight: agent-teams-simplify-and-harden is the kind of skill you can hand to a new teammate without a long onboarding doc.
Registry listing for agent-teams-simplify-and-harden matched our evaluation — installs cleanly and behaves as described in the markdown.
Useful defaults in agent-teams-simplify-and-harden — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
agent-teams-simplify-and-harden fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.
I recommend agent-teams-simplify-and-harden for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
showing 1-10 of 31