{"id":30522931,"url":"https://github.com/ayoubben18/ab-method","last_synced_at":"2026-05-23T19:01:19.588Z","repository":{"id":309221662,"uuid":"1035529827","full_name":"ayoubben18/ab-method","owner":"ayoubben18","description":"A workflow system for Claude Code and Codex. It grills a problem into a domain-grounded plan, then either drives it through test-driven missions you review one at a time, or hands it to an autonomous /goal loop that runs to a verifiable stop condition.","archived":false,"fork":false,"pushed_at":"2026-05-16T12:40:41.000Z","size":366,"stargazers_count":169,"open_issues_count":0,"forks_count":13,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-16T13:43:17.302Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/ayoubben18.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["ayoubben18"]}},"created_at":"2025-08-10T15:40:39.000Z","updated_at":"2026-05-16T12:40:43.000Z","dependencies_parsed_at":"2025-09-10T13:17:19.976Z","dependency_job_id":"97c8d609-158c-4079-b9f3-ab413a96199e","html_url":"https://github.com/ayoubben18/ab-method","commit_stats":null,"previous_names":["ayoubben18/ab-method"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/ayoubben18/ab-method","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayoubben18%2Fab-method","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayoubben18%2Fab-method/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayoubben18%2Fab-method/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayoubben18%2Fab-method/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ayoubben18","download_url":"https://codeload.github.com/ayoubben18/ab-method/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ayoubben18%2Fab-method/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33408490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":[],"created_at":"2025-08-26T19:43:16.904Z","updated_at":"2026-05-23T19:01:19.565Z","avatar_url":"https://github.com/ayoubben18.png","language":"JavaScript","funding_links":["https://github.com/sponsors/ayoubben18"],"categories":["Workflows \u0026 Knowledge Guides 🧠","AI Coding Agents","Productivity \u0026 Workflow","工作流程与知识指南 🧠"],"sub_categories":["General","Claude Code","通用"],"readme":"# AB Method\n\nA workflow system for Claude Code and Codex. It grills a problem into a domain-grounded plan, then either drives it through test-driven missions you review one at a time, or hands it to an autonomous `/goal` loop that runs to a verifiable stop condition.\n\n## Installation\n\n```bash\nnpx ab-method\n```\n\nThe installer detects your environment and installs accordingly:\n\n| Detected        | Result                                                  |\n|-----------------|---------------------------------------------------------|\n| `.claude/` only | Slash commands + skills under `.claude/`                |\n| `.agents/` only | Skills under `.agents/skills/` (Codex layout)           |\n| Both            | Both targets receive the right files                    |\n| Neither         | Asks which to install (default: both)                   |\n\nIt also installs in every case:\n\n- `.ab-method/` — workflow definitions and the structure index\n- `docs/architecture/` and `docs/tasks/` — output scaffolding\n- Helper skills: `grill-with-docs`, `grill-me`, `tdd`, `domain-model`, `ubiquitous-language`, `improve-codebase-architecture`, `request-refactor-plan`, `to-issues`, `to-prd`, `write-a-skill`\n- Workflow skills: `ab-create-task`, `ab-create-goal`, `ab-analyze-project`, and one per workflow\n- Slash commands (Claude only): `/ab-master` plus one per workflow\n- `AGENTS.md` (Codex only): orients Codex and lists the workflow skills\n- Optional built-in subagents (Claude only, prompted)\n\nSkills are copied as real files, not symlinks — portable across OS and CI.\n\n## Claude Code vs Codex\n\nThe workflows are identical; only the trigger differs.\n\n- **Claude Code** — run a workflow with its slash command: `/create-task`, `/create-goal`, `/analyze-project`, etc.\n- **Codex** — Codex has no repo-shared slash commands, so each workflow ships as an `ab-*` skill. Invoke one explicitly with `/skills` or `$ab-create-task`, or just describe your intent and Codex matches the skill by its description. `AGENTS.md` tells Codex the rest.\n\nBoth read the same `.ab-method/core/*.md` definitions and the same `.ab-method/structure/index.yaml`.\n\n## Commands\n\n| Command               | Purpose                                                                 |\n|-----------------------|-------------------------------------------------------------------------|\n| `/create-task`        | Define a task; always grills, runs every mission through `tdd`          |\n| `/create-task-from-handoff` | Resume a handoff spun off mid-grill into a task; continues the grill, then runs `create-task` |\n| `/create-goal`        | Produce a ready-to-run prompt for an autonomous `/goal` loop            |\n| `/extend-goal`        | Extend an existing goal, building on what the `/goal` run implemented   |\n| `/resume-task`        | Continue an existing task from its progress tracker                     |\n| `/extend-task`        | Append new missions to an existing task                                 |\n| `/test-mission`       | Retroactive test coverage for code not written test-first               |\n| `/analyze-project`    | Full architecture sweep — domain + tech-stack + FE/BE patterns          |\n| `/analyze-frontend`   | Frontend patterns only                                                  |\n| `/analyze-backend`    | Backend patterns only                                                   |\n| `/update-architecture`| Refresh architecture and domain docs after impactful changes            |\n| `/ab-master [name]`   | Master controller — lists workflows, or runs the named one              |\n\n## Core principles\n\n1. Always grill — `/create-task` and `/create-goal` invoke `grill-with-docs` on every run, no skip.\n2. Always TDD — every mission runs red-green-refactor through the `tdd` skill; the test is the spec.\n3. No mission docs — missions are one-line entries in `progress-tracker.md`; tight summaries on completion.\n4. One task at a time — focus, conserve context.\n5. Backend-first for full-stack tasks — types feed the frontend.\n6. Never lose a tangent — when a grill surfaces a side-topic that deserves its own task, the `handoff` skill captures it under `docs/handoffs/` instead of derailing the current grill; `/create-task-from-handoff` resumes it later.\n\n`grill-with-docs` reads `UBIQUITOUS_LANGUAGE.md` and `CONTEXT.md`, challenges terminology against them, and updates `CONTEXT.md` and `docs/adr/` inline as decisions crystallise.\n\n## Task vs Goal\n\n- `/create-task` breaks work into missions you review and run through `tdd` yourself, one at a time. Use when you want to stay in the loop.\n- `/create-goal` does the same grilling and doc-grounding, but emits a single `goal.md` prompt for an autonomous `/goal` loop (Claude Code or Codex) plus a `progress-tracker.md` the loop maintains. Use for one continuous objective with a verifiable stop condition.\n\n## Workflow phases\n\n1. Baseline — `/analyze-project` produces `UBIQUITOUS_LANGUAGE.md`, `CONTEXT.md`, and three lean architecture docs.\n2. Sharpen — the `domain-model` skill grills the domain language and captures ADRs.\n3. Build — `/create-task` or `/create-goal` grills, then either TDD-loops missions or hands off a goal prompt.\n4. Maintain — `/update-architecture` keeps the baseline fresh.\n\n## File layout\n\n```\n.claude/commands/        Slash commands (one per workflow)\n.ab-method/\n  core/                  Workflow definitions\n  structure/index.yaml   Configurable paths and outputs\n\nUBIQUITOUS_LANGUAGE.md   Domain glossary\nCONTEXT.md               Bounded-context overview\n                         (or CONTEXT-MAP.md + per-context files)\n\ndocs/\n  architecture/          tech-stack.md, frontend-patterns.md, backend-patterns.md\n  adr/                   Decision records, created lazily by /domain-model\n  tasks/\u003ctask-name\u003e/     progress-tracker.md (single source of truth)\n  goals/\u003cgoal-name\u003e/     goal.md + progress-tracker.md\n  handoffs/\u003cslug\u003e.md     Tangents spun off mid-grill, awaiting their own task\n```\n\n## Configuration\n\nAll paths are configurable in `.ab-method/structure/index.yaml`. Every workflow checks this file first to know where to read from and write to. `workflow_outputs` maps each workflow to its output destinations.\n\n## Examples\n\n```bash\n/create-task\n# Grills (problem, scope, behavior, constraints, anchors), reads the\n# domain + architecture docs, writes a slim progress-tracker.md with\n# all missions, then runs each mission through the tdd skill.\n\n/create-goal\n# Grills the same way, then writes docs/goals/\u003cname\u003e/goal.md — paste\n# its contents into /goal to run the objective autonomously.\n\n/resume-task\n# Reads progress-tracker.md, loads context, continues the next mission.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayoubben18%2Fab-method","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayoubben18%2Fab-method","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayoubben18%2Fab-method/lists"}