{"id":45103078,"url":"https://github.com/SmokeAlot420/ftw","last_synced_at":"2026-03-04T17:00:58.919Z","repository":{"id":336983927,"uuid":"1151239097","full_name":"SmokeAlot420/ftw","owner":"SmokeAlot420","description":"First Try Works — vibecoding takes 47 tries, FTW takes one. Multi-agent validation workflow for Claude Code and OpenClaw.","archived":false,"fork":false,"pushed_at":"2026-02-07T04:53:29.000Z","size":45,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-07T15:15:35.657Z","etag":null,"topics":["ai-coding","claude-code","context-engineering","developer-tools","ftw","multi-agent","openclaw","validation","vibecoding","workflow"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SmokeAlot420.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-06T08:10:40.000Z","updated_at":"2026-02-07T04:53:32.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/SmokeAlot420/ftw","commit_stats":null,"previous_names":["smokealot420/ftw"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/SmokeAlot420/ftw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmokeAlot420%2Fftw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmokeAlot420%2Fftw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmokeAlot420%2Fftw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmokeAlot420%2Fftw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SmokeAlot420","download_url":"https://codeload.github.com/SmokeAlot420/ftw/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmokeAlot420%2Fftw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30086511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T15:40:14.053Z","status":"ssl_error","status_checked_at":"2026-03-04T15:40:13.655Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding","claude-code","context-engineering","developer-tools","ftw","multi-agent","openclaw","validation","vibecoding","workflow"],"created_at":"2026-02-19T21:01:56.199Z","updated_at":"2026-03-04T17:00:58.874Z","avatar_url":"https://github.com/SmokeAlot420.png","language":"Shell","funding_links":[],"categories":["Community Projects"],"sub_categories":["Development Workflows"],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003e\u003cb\u003eFTW\u003c/b\u003e\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\u003ci\u003eFirst Try Works\u003c/i\u003e\u003c/p\u003e\n  \u003cp align=\"center\"\u003eThe context engineering workflow that actually ships working code on the first try.\u003c/p\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/SmokeAlot420/ftw/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/SmokeAlot420/ftw?style=flat-square\" alt=\"GitHub Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/SmokeAlot420/ftw/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpenClaw-skills-purple?style=flat-square\" alt=\"OpenClaw Skills\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Claude_Code-plugin-orange?style=flat-square\" alt=\"Claude Code Plugin\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eOpenClaw:\u003c/b\u003e \u003ccode\u003eclawhub install ftw\u003c/code\u003e \u0026nbsp;|\u0026nbsp; \u003cb\u003eClaude Code:\u003c/b\u003e \u003ccode\u003eclaude --plugin-dir ./claude-code-plugin\u003c/code\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003e\"Vibecoding takes 47 tries. FTW takes one.\"\u003c/i\u003e\u003c/p\u003e\n\n---\n\n## The Problem\n\nYou tell an AI coding agent to build a feature. It writes code. You run it. It breaks. You paste the error back. It \"fixes\" it by rewriting half the file. Now something else breaks. Three hours later you're mass-reverting commits and questioning your life choices.\n\nThis is vibecoding. And it's how most people use AI coding tools.\n\nThe failure mode isn't the model — it's the workflow. One agent tries to plan, implement, AND validate its own work. It hallucinates success. It \"fixes\" things by introducing new bugs. Context rots as the conversation grows. By message 40, it's forgotten what it was even building.\n\n**FTW fixes this.** Three specialized agents. Fresh context per agent. Independent validation that doesn't trust the executor's claims — just like real code review, except it actually runs the tests.\n\nNo prompt tweaking. No hoping it works. No \"let me try that again with a better prompt.\"\n\nPlan. Implement. Validate. Ship.\n\n---\n\n## How It Works\n\n```\n                        ┌──────────────┐\n                        │   YOU / PRD  │\n                        └──────┬───────┘\n                               │\n                    ┌──────────▼──────────┐\n                    │   FTW ORCHESTRATOR  │\n                    │  (~15% context)     │\n                    └──────────┬──────────┘\n                               │\n              ┌────────────────┼────────────────┐\n              │                │                │\n              ▼                ▼                ▼\n     ┌────────────┐   ┌──────────────┐  ┌────────────┐\n     │  RESEARCH  │   │   EXECUTOR   │  │  VALIDATOR  │\n     │            │──▶│              │─▶│             │\n     │ Codebase   │   │ Implements   │  │ Independent │\n     │ Analysis   │   │ PRP tasks    │  │ Verification│\n     │ + PRP Gen  │   │ Fresh ctx    │  │ Fresh ctx   │\n     └────────────┘   └──────────────┘  └──────┬──────┘\n                                               │\n                                     ┌─────────┼─────────┐\n                                     │         │         │\n                                   PASS    GAPS_FOUND  HUMAN\n                                     │         │      NEEDED\n                                     ▼         ▼         ▼\n                                  Commit   ┌────────┐   Ask\n                                           │DEBUGGER│   User\n                                           │        │\n                                           │Root    │\n                                           │cause   │\n                                           │fix     │\n                                           └───┬────┘\n                                               │\n                                          Re-validate\n                                          (max 3x)\n```\n\n**The key insight:** The validator is independent. It gets fresh context, reads the PRP, and checks the actual code. It doesn't see the executor's conversation. It doesn't trust claims — it verifies.\n\n---\n\n## FTW vs Mini FTW\n\n| | **FTW** (Full) | **Mini FTW** |\n|---|---|---|\n| **Use case** | Large multi-phase projects | Quick features, single-phase |\n| **Input** | PRD with defined phases | Quick discovery conversation |\n| **PRP Generation** | Per phase from PRD | From 5 discovery questions |\n| **Phases** | Multiple (1-N) | Single |\n| **Best for** | \"Build an entire auth system\" | \"Add a delete button\" |\n| **Command** | `/piv` | `/mini-piv` |\n\nBoth use the same Execute → Validate → Debug pipeline. Same quality. Different entry points.\n\n---\n\n## Quick Start\n\n### OpenClaw (Recommended)\n\n```bash\n# Install from ClawHub\nclawhub install ftw\n\n# Or manual install — copy skills to your OpenClaw skills directory\ncp -r openclaw-skill/piv/ ~/.openclaw/skills/piv\ncp -r openclaw-skill/mini-piv/ ~/.openclaw/skills/mini-piv\n```\n\n### Claude Code Plugin\n\n```bash\n# Clone the repo\ngit clone https://github.com/SmokeAlot420/ftw.git\n\n# Run Claude Code with the plugin\nclaude --plugin-dir ./ftw/claude-code-plugin\n```\n\n### First Run\n\n```bash\n# Full FTW — multi-phase from a PRD\n/piv /path/to/PRDs/my-feature.md 1 4\n\n# Mini FTW — quick feature, no PRD needed\n/mini-piv \"add-user-search\"\n\n# Project setup — creates PRDs/, PRPs/, templates\n/piv-init /path/to/project\n```\n\n---\n\n## Features\n\n**Fresh context per agent** — Each agent spawns with a clean context window. No context rot. No \"I forgot what we were building.\" The orchestrator stays lean at ~15% context while agents get 100% fresh.\n\n**Independent validation** — The validator doesn't see the executor's conversation. It reads the PRP, checks the actual code, runs the tests. Just like code review, except it can't be guilt-tripped into approving.\n\n**3-cycle debug loop with escalation** — Validator finds gaps? Debugger gets the gap list and fixes root causes, not symptoms. Still broken after 3 cycles? Escalates to you instead of silently shipping broken code.\n\n**Structured PRPs, not vibes** — Every implementation starts from a Plan-Requirements-Protocol document with explicit tasks, success criteria, and validation steps. No ambiguity, no \"figure it out.\"\n\n**Language-agnostic** — Solidity, TypeScript, Python, Rust, whatever. FTW orchestrates the workflow, not the language. PRP templates work with any stack.\n\n**Dual-target distribution** — Ships as both an OpenClaw skill pack and a Claude Code plugin. Same workflow engine, two ecosystems.\n\n---\n\n## Commands\n\n| Command | Description | Example |\n|---------|-------------|---------|\n| `/piv` | Full multi-phase orchestrator | `/piv ./PRDs/auth-system.md 1 3` |\n| `/mini-piv` | Lightweight discovery-driven builder | `/mini-piv \"token-filters\"` |\n| `/piv-init` | Project setup (creates dirs + templates) | `/piv-init /path/to/project` |\n\n---\n\n## Project Structure\n\n```\nftw/\n├── claude-code-plugin/          # Claude Code plugin distribution\n│   ├── .claude-plugin/\n│   │   └── plugin.json          # Plugin manifest\n│   ├── skills/\n│   │   ├── piv/                 # Full PIV orchestrator\n│   │   ├── mini-piv/            # Mini PIV orchestrator\n│   │   └── piv-init/            # Project setup\n│   ├── agents/\n│   │   ├── piv-executor.md      # Implements PRP requirements\n│   │   ├── piv-validator.md     # Independent verification\n│   │   └── piv-debugger.md      # Root cause debugging\n│   └── scripts/\n│       └── piv-ralph.sh         # Bash automation\n│\n├── openclaw-skill/              # OpenClaw skill distribution\n│   ├── piv/                     # Full PIV skill\n│   │   ├── SKILL.md\n│   │   ├── references/\n│   │   ├── assets/\n│   │   └── scripts/\n│   └── mini-piv/                # Mini PIV skill\n│       ├── SKILL.md\n│       ├── references/\n│       └── assets/\n│\n└── shared/                      # Shared source definitions\n    ├── templates/\n    ├── agent-defs/\n    ├── process-docs/\n    └── scripts/\n```\n\n---\n\n## Who This Is For\n\n- **Solo devs** shipping features overnight and tired of babysitting AI output\n- **Teams** using AI coding agents and tired of inconsistent results across developers\n- **Anyone** who's watched Claude confidently rewrite working code into broken code and then gaslight you about it\n- **Builders** who want structured, repeatable AI workflows instead of prompt roulette\n\n### Not For\n\n- People who think prompt engineering is sufficient\n- \"Just tell it to try harder\" advocates\n- Anyone satisfied with a 1-in-47 success rate\n\n---\n\n## How It's Different\n\nMost AI coding workflows are single-agent monologues. One agent plans, codes, and evaluates its own work. This is like letting a developer review their own pull request — technically possible, always a bad idea.\n\nFTW splits the workflow into specialized agents with **separation of concerns**:\n\n1. **Research Agent** — Analyzes the codebase and generates a structured PRP\n2. **Executor Agent** — Implements the PRP with fresh context (no prior conversation baggage)\n3. **Validator Agent** — Independently verifies against the PRP (doesn't trust the executor)\n4. **Debugger Agent** — Fixes specific gaps with root cause analysis (not \"let me rewrite everything\")\n\nEach agent starts fresh. No context rot. No accumulated hallucinations. No \"I already tried that\" loops.\n\n---\n\n## License\n\n[MIT](LICENSE)\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003ci\u003eStop vibecoding. Start shipping.\u003c/i\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmokeAlot420%2Fftw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSmokeAlot420%2Fftw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSmokeAlot420%2Fftw/lists"}