The SDK for the methodology

Agent Assisted Software Development Life Cycle

A software life cycle for development teams who work through coding agents, delivered as skills you install into the agent you already use.

One framework, whatever your size. The same fifteen disciplines serve one developer on a weekend project and a fifteen-person team. A discipline is a kind of work, not a person, and nothing in the framework assumes who performs it.

See the methodology How it installs

Disciplines organize best-practice skills for any human to wield

It doesn't matter how many humans you have or what their specialty is, disciplines allow anyone with general context of the work domain to perform work with confidence.

  • PMProject Management
  • BABusiness Analysis
  • UXUX Design
  • DEVDevelopment
  • QATesting
  • SECSecurity
  • RELRelease Management
  • SUPSupport
  • Developer: Project Management, Business Analysis, UX Design, Development, Testing, Security, Release Management, Support

One developer runs the skills of every discipline. The agent does the legwork; no discipline is skipped because there is no one to do it.

What it is

What the SDK is

AA-SDLC is a methodology and an SDK. The methodology says what good software delivery looks like when agents do much of the work. The SDK turns each step of it into a skill your coding agent can run, anchored on a ticket, producing a named artifact with stated acceptance criteria.

Skills, one per step

Every step of the methodology is a skill: a plain-text file that tells the agent what to read, what to produce, when that counts as done, and which guidance to follow. Each skill is invoked by one command inside the agent, such as /aa-dev-implement or /aa-ba-refine-requirements.

Workflow data as the source of truth

Disciplines, steps, and processes are data files, validated by schema, and the skills, the documentation, and this website are generated from or checked against them. The methodology page is one of those generated pages.

The aa command line

A native binary that installs the skills into your agent at user or project scope, writes the project's aa.config.yaml, updates an install in place, and adds plugins. Inside the agent, /aa-fw-health reports what the install can and cannot reach.

Process, never tool

The skills describe the process and let the agent infer the tool from your project. They work against whatever ticket system, knowledge base, and source control the agent already has, and degrade gracefully when one of them is out of reach.

An isometric ring of six connected work stations with documents flowing between them

Honest status

Where it stands

This block is regenerated from the framework repository, so it says what exists rather than what is planned.

What exists today

  • 15 disciplines and 6 processes defined as workflow data
  • 48 steps, each with a skill and a command: 48 of 48 skills present
  • 14 tenets, 27 opinions, 47 requirements, each with a stable id
  • 86 feature pages holding 772 approved scenarios: the framework's own requirements, in Gherkin tables, pulled into the repository as feature files
  • The aa command line: verbs setup, init, update, uninstall, plugin, a native binary for six platforms, published to npm as aa-sdlc 0.1.0-alpha.7
  • 22 agent harnesses supported by the installer: Claude Code verified in use, 13 checked against a real install on Linux, the others installed as their documentation describes

Counts are regenerated from the repository; if this block is stale, the framework's own tests fail.

The source is on GitHub: DevPossible/aa-sdlc, under the Functional Source License (FSL-1.1-ALv2): use it for anything, including commercial work, but not as a competing product; each version becomes Apache 2.0 two years after release. The command line is on npm as aa-sdlc, with signed Windows binaries and each release on GitHub Releases.

Getting it

How it installs

Alpha. aa-sdlc is on npm as an alpha: a native binary for Windows, Linux, and macOS on x64 and arm64, with the Windows binaries signed by DevPossible LLC. Expect changes between alpha releases; aa update refreshes an install in place.
npm install -g aa-sdlc         # npm installs the native binary for your platform
aa setup                       # detect every agent harness you use and install into each at user scope
cd your-project
aa init                        # write aa.config.yaml, ask which harnesses this repository gets, add the commit hook

Then, inside the agent, run /aa-fw-health. It probes every system the installed skills depend on and reports what is met, unmet, or not applicable, without changing anything. Where aa init asks about your ticket project and knowledge space, paste the URL; the agent looks for a connector it already has rather than the SDK wrapping one.

Agent harnesses

The skills are plain SKILL.md files and read the same in any harness that supports the skills format; only the glue differs per harness: where the skills go, how a command is declared, and hooks where a harness has them. You are not limited to one: aa setup offers every harness it finds as a checklist and installs into each one you keep ticked, writing each skill once per folder even where several harnesses share it, and aa uninstall removes the framework from the ones you pick, leaving the others working. A project can be worked on from several at once.

Claude Code, Codex, Gemini CLI, OpenCode, Pi, and 17 more Show where each installs, its commands, and its subagents
HarnessStatusSkills go toCommandsSubagents
Claude CodeSupported, verified in use~/.claude/skillsEach skill is its own commandInstalled
CodexSupported, checked on a real install~/.agents/skillsEach skill is its own commandThe harness has them; not installed yet
Gemini CLISupported, checked on a real install~/.gemini/skillsTOML commands in ~/.gemini/commandsInstalled
OpenCodeSupported, checked on a real install~/.config/opencode/skillsMarkdown commands in ~/.config/opencode/commandsInstalled
PiSupported, checked on a real install~/.pi/agent/skillsEach skill is its own commandNo: runs inline
CursorSupported, checked on a real install~/.cursor/skillsEach skill is its own commandInstalled
GitHub CopilotSupported, checked on a real install~/.copilot/skillsEach skill is its own commandInstalled
WindsurfSupported, per its documentation~/.codeium/windsurf/skillsEach skill is its own commandNo: runs inline
ClineSupported, per its documentation~/.cline/skillsEach skill is its own commandThe harness has them; not installed yet
Roo CodeSupported, per its documentation~/.roo/skillsEach skill is its own commandNo: runs inline
Kilo CodeSupported, per its documentation~/.kilo/skillsEach skill is its own commandNo: runs inline
AmpSupported, per its documentation~/.config/agents/skillsEach skill is its own commandNo: runs inline
GooseSupported, checked on a real install~/.agents/skillsEach skill is its own commandThe harness has them; not installed yet
ZedSupported, per its documentation~/.agents/skillsEach skill is its own commandNo: runs inline
JetBrains JunieSupported, checked on a real install~/.junie/skillsEach skill is its own commandThe harness has them; not installed yet
KiroSupported, checked on a real install~/.kiro/skillsEach skill is its own commandThe harness has them; not installed yet
Qwen CodeSupported, checked on a real install~/.qwen/skillsMarkdown commands in ~/.qwen/commandsInstalled
CrushSupported, checked on a real install~/.config/crush/skillsEach skill is its own commandNo: runs inline
Factory DroidSupported, checked on a real install~/.factory/skillsEach skill is its own commandThe harness has them; not installed yet
Augment AuggieSupported, per its documentation~/.augment/skillsEach skill is its own commandThe harness has them; not installed yet
HermesSupported, checked on a real install~/.hermes/skillsEach skill is its own commandThe harness has them; not installed yet
WarpSupported, per its documentation~/.agents/skillsEach skill is its own commandNo: runs inline
AiderNot supportedit loads no skills and has no user-defined commands; give it a conventions file with --read instead
ContinueNot supportedits support for SKILL.md skills is not documented; prompt files must be registered in its own config

Subagents where the harness has them, the same steps where it does not. Some work is worth more from a separate mind: a review by someone who did not write the change, tests by someone who did not see the implementation's reasoning, a security pass with its own context. Where a harness supports subagents, AA-SDLC gives each discipline its own, generated from the same workflow data and guidance as the skills, so the two never drift, and the review, testing, and security steps hand their independent part to it. Where a harness has no subagents, the same skill does that part itself in the main conversation: every step still runs and produces its artifact, and only the separate context is lost. Plugins need no agents of their own; a plugin's skills run under the agent of the discipline whose step they attach to. The table says, for each harness, whether the subagents are installed, whether the harness has subagents the framework does not install yet, or whether the steps run inline.

A harness without a command concept still gets the skills, and the agent routes to them by name. Adding a harness is an adapter, not a fork: /aa-fw-extend scaffolds one.

One person or fifteen

One ticket, two paths

The same steps, the same artifacts, the same acceptance criteria. What changes between a solo developer and a team is who runs each step, never which steps exist. Follow one ticket, "customers can export their order history", through both.

One developer with one agent on the left, a team of five each paired with an agent on the right, the same six-process ring above both

Solo: one developer, one agent

  1. Refine the ticket. You run /aa-rf-refine-ticket. The agent reads the ticket, checks the repository for what already exists, writes the Gherkin scenarios into the ticket, and notes the two questions you must answer yourself.
  2. Plan the implementation. /aa-ip-plan-implementation produces the implementation plan on the ticket: which files change, which tests prove it, and a size grounded in that plan.
  3. Implement. /aa-dev-implement works the plan on a branch named for the ticket, running the tests at each tier the change touches. You review the diff and make the commits.
  4. Review. /aa-dev-review reviews the branch against the scenarios and the plan, as a second pair of eyes you do not otherwise have.
  5. Finish. /aa-dev-finish-branch formats the changed files, opens the merge request that references the ticket, and transitions the ticket. You merge.

Every discipline ran. You performed all of them.

Team: the same steps, divided

  1. Refine the ticket. The analyst runs /aa-rf-refine-ticket after /aa-ba-refine-requirements has produced the scenarios with the stakeholder. The same questions are logged; a product manager answers them.
  2. Plan the implementation. The developer who will build it runs /aa-ip-plan-implementation. The plan lands on the same ticket, and the size comes from the plan, not from a guess in a meeting.
  3. Implement. That developer runs /aa-dev-implement on the ticket's branch. Tests run at each tier. The developer makes the commits.
  4. Review. A second developer runs /aa-dev-review, and a tester runs /aa-qa-generate-tests to go beyond the stated requirement.
  5. Finish. The author runs /aa-dev-finish-branch; the reviewer merges. The release manager picks the merge up with /aa-rel-prepare-release.

Every discipline ran. Five people performed them, and the artifacts are identical to the solo column.

The workflow

Processes, disciplines, and commands

Six processes order the steps toward a goal. Fifteen disciplines own them. Every command below is a skill you can run; each links to its full description on the methodology page. This block is regenerated from the workflow data.

The six AA-SDLC processes as a cycle
  1. Conception and idea refinement

    From a stakeholder conversation to a refined, prioritised, ticketed backlog with architecture decided.

    Run discovery, Refine requirements, Prototype, Architect, Threat model, Break work into tickets.

  2. Development

    From a ready ticket to merged, reviewed code with the tests that prove it.

    Plan an implementation, Break a plan into tasks, Set up the development environment, Implement a ticket, Review code, Finish a branch.

  3. Testing

    From Development's proof of the requirement to a suite that goes beyond it.

    Write a test strategy, Extend the test suite, Build end-to-end tests, Performance and load test, Security test, Exploratory testing.

  4. Deployment

    From tested code to production, deliberately and repeatably.

    Set up infrastructure, Set up the delivery pipeline, Prepare a release, Release to production, Roll back a release.

  5. Verification

    Confirming, from production and from the people who asked, that the release did what it claimed.

    Set up observability, Validate production, User acceptance testing, Review interaction.

  6. Maintenance and continuous improvement

    Keeping the system healthy, secure, documented, and improving after release.

    Triage, Respond to an incident, Post-incident review, Fix a defect, Optimise performance, Analyse feedback and update the roadmap, Maintain security and compliance, Maintain documentation, Run a retrospective.

Framework fw

The framework's own work: bootstrapping a project, checking that the environment and repository meet the declared requirements, and growing the framework through extensions. It is not a software delivery discipline; it is what makes the other fourteen runnable.

Product Management pd

Decides what to build and why, and in what order. Owns the outcome the software is meant to achieve, the measure of whether it did, and the roadmap that sequences the work. Product Management answers "should we", Business Analysis answers "what exactly".

Business Analysis ba

Turns a business need into requirements the whole team can read and a test can execute. Discovers what stakeholders actually need, closes the gaps, writes it as Gherkin scenarios, and later confirms with those stakeholders that what was built is what they meant.

UX Design ux

Makes requirements tangible before they are built and checks the result against real use afterwards. Produces mockups and prototypes that stakeholders react to, and reviews the built software for how people actually interact with it.

Technical Analysis ta

Decides how the system will be shaped and records why. Produces the architecture, the technology choices, and the decision records that let anyone later understand what was considered and rejected. Investigates unknowns with time-boxed spikes rather than guesses.

Security sec

Finds what could go wrong before an attacker does. Threat models the architecture, turns the mitigations into requirements, tests the built system for the weaknesses that matter, and keeps dependencies, secrets, and compliance evidence current over the life of the system.

Refinement rf

Turns requirements and priorities into a backlog of tickets that are ready to plan and build. Every ticket that leaves Refinement has scenarios, acceptance criteria, and a size, and is small enough to finish in one iteration.

Implementation Planning ip

Plans how one ticket will be built before anyone builds it. Reads the scenarios, the architecture, and the code that exists, and writes a plan the ticket carries: what changes, where, in what order, with what tests, and what could go wrong.

Development dev

Builds the software and proves it meets the requirement. Every change ships with the tests that show its scenarios pass, is reviewed, and is merged on a branch that references its ticket. Development owns "it works"; Testing owns "and here is what we did not think of".

Testing qa

Makes the test suite as comprehensive as is reasonable. Starts from the scenarios and the tests Development wrote, then applies general testing strategies to find what the requirement did not say. Every gap it finds becomes a question on the ticket and a scenario in the feature file.

Documentation doc

Keeps what is written true. Documents each feature for the people who will use and maintain it, keeps the knowledge base aligned with the feature files and the code, and periodically audits the whole for drift.

Release Management rel

Gets built, tested software into production deliberately and gets it back out if it must. Owns the version, the release notes, the go/no-go decision, the production deployment record, and rollback. Release Management never asks what to release; it asks whether it is ready.

Support sup

Is the front door for what goes wrong in production. Triages incoming incidents and requests into tickets with the right priority, coordinates response until the impact is contained, and runs the post-incident review that turns an incident into prevention.

Never lost, never stuck

Always know what's next, and what's left

With fifty-odd commands, the hardest question is often which one to run. /aa-fw-whatsnext answers it. It reviews your folder, your tickets, and your knowledge base against the framework's opinions and processes, stops at the first real gap it finds, and tells you the one thing to do about it. Every answer ends with the planned work that remains, so you know what is left as well as what is next.

It checks in a fixed order, because a later layer cannot be trusted while an earlier one is broken: there is no point choosing the next ticket while the last change broke the build.

  1. Foundation

    A repository, the project config, and a linked ticket project and knowledge base. On an empty folder, this is where it stops.

    Next: aa init, then /aa-fw-init

  2. Work in flight

    Uncommitted changes, a branch that was never finished, a merge request waiting for review. Unfinished work comes before new work.

    Next: /aa-dev-finish-branch with the branch's ticket

  3. Recent changes

    Each recent commit held to the opinions: it traces to a ticket, code changes carry tests, behaviour changes carry scenarios, significant decisions have records, and the build and tests pass.

    Next: /aa-qa-generate-tests for the commit that changed code without a test

  4. Knowledge

    The pages linked to recent tickets still describe what the code now does, and no decision they cite has been superseded.

    Next: /aa-doc-maintain-docs for the pages that drifted

  5. The next ticket

    When everything above is in order, the highest-priority ticket in the current iteration, and its state chooses the command.

    Next: /aa-ip-plan-implementation for a refined ticket with no plan yet

Next:     /aa-qa-generate-tests ABC-142
Why:      a recent commit changed code and no test (O-07)
Evidence: 3f2a91c "feat(orders): export order history as CSV" changed src/Orders/Export.cs only
Layers:   foundation passed | work in flight passed | recent changes: gap
          knowledge not reached | next ticket not reached
Remaining: 7 open in Sprint 14: 2 new, 2 refined, 1 planned, 1 in progress, 1 in review

It changes nothing and never blocks. A system it cannot reach is reported as not checked, never as passed, and it carries on with the layers it can check. The requirement checks themselves belong to /aa-fw-health; /aa-fw-whatsnext uses them and decides what matters most.

What you get for free

Decisions already made for you

Most delivery problems are not technical. They are process problems: two branch conventions in one team, a test tier nobody set up, a decision that lived in someone's head, a size that was a guess. Every choice a team leaves open is another place the process can fail.

AA-SDLC settles the choices that do not make your product different, and settles them the same way in every repository. That takes whole categories of process failure off the table before the first ticket, and it gives your agent a project whose shape it already knows, so it spends its effort on your problem instead of on working out how you work.

The decisionSettled asWhat you getOpinion
The systems of recordEvery project has source control, a ticket manager, and a knowledge base; one repository maps to one ticket projectHistory, review, and rollback from the first commit; a ticket-based workflow in which every change has a home, an owner, and a status anyone can see; and project documentation kept in one central place, not scattered across drives and chat threadsO‑02, O‑03, O‑04, O‑09
Knowledge base layoutSix top-level sections in every project: Overview, Requirements, Architecture, Operations, Releases, Guides; pages explain and index, and a superseded page is kept and linked, never deletedAnyone, or any agent, knows where a page belongs before reading it, and knows which pages a change should have updatedO‑27
Repository layoutOne folder structure for every repository, whatever the stackAnyone, or any agent, finds anything in any repository without askingO‑05
Build, test, and runRoot scripts for initialize, build, test, and pack; everything needed to build and operate it is versionedA fresh clone runs with one command, and the pipeline calls the same scripts you doO‑06, O‑16
Test tiersUnit, integration, and end-to-end tiers; end-to-end against containers; every test deterministic and independentA suite you can trust on any machine, with no "works on mine"O‑07, O‑12, O‑23
Who tests whatDevelopment proves the requirement; Testing goes beyond itNo gap where each side assumed the other covered itO‑08
RequirementsGherkin scenarios on knowledge base pages, in tables anyone can read and edit, as the source of truth, written from goals rather than a mock-up; each ticket pulls its scenarios into the repository as feature files that review keeps from being edited by hand; every feature and scenario has a stable id that its tests nameBusiness analysts and product owners own the requirements where they already work, and every agent still reads them beside the code; requirements that run as tests, so "done" is checkable; and coverage measured by requirement, not by lineO‑01, O‑15
DesignThe simplest design that meets the scenarios that existNo speculative layers to build, test, and maintainO‑20
Sizing and readinessA size comes from implementation thinking; a refined ticket is checked against the repository before work startsEstimates you can defend, and no work started on a stale planO‑10, O‑13
Ticket life cycleFive kinds (epic, story, task, bug, spike) and seven states (New, Refined, Planned, In progress, In review, Accepted, Done), each move made by the step that produces the evidence, mapped to your ticket system's own namesA board that means the same thing in every project, status that is evidence rather than an impression, and a next step anyone can read off the ticketO‑26
CommitsConventional Commits, small and cohesive, made by the user, each tracing back to its ticketA readable history, changelogs and version bumps from the log, and an answer to "why is this here?"O‑14, O‑17, O‑19
DecisionsEvery significant decision is a numbered decision recordSettled questions stay settled; nobody re-argues them in six monthsO‑18
DependenciesAdded, updated, and removed through the package manager, never by handA lock file that always agrees with what is installedO‑22
ConventionsA static analyser with a committed rule set, started from a published best-practice baseline for your language, framework version, and kind of app, then tailored to your preferences with every departure recorded; a formatter settles layoutConventions every person and every agent follows without being told, and reviews about the change, not about styleO‑21
The delivery pathEvery pipeline step runs locally; the artifact is built once and promoted; environment settings live apart from functional onesA pipeline you can debug on your own machine, and a release that is exactly what was testedO‑11, O‑24, O‑25

Still yours

Your language and stack, your ticket system, knowledge base, and source control host, your pipeline system, your tools, your team's shape, and every product decision. The framework settles how the work flows, never what you build or what you build it with.

Settled, not enforced

No step refuses to run because a project differs. The steps assume these choices, and /aa-fw-health tells you where your project departs from them and what each gap puts at risk, so adopting them is a list of small moves, not a migration.

Plugins

Extending it

Core stays small and names no technology. Anything specific to a stack or an organisation's process arrives as a plugin: a pack of skills installed with aa plugin install at user or project scope, each skill attached to a step or a requirement of the life cycle. See Plugins. Plugin skills are named after the plugin, so they sit beside the core steps without redefining them, and the CLI refuses a plugin that tries. Plugins never wrap a ticket system, a wiki, or source control; the agent's own connectors do that.

The framework also extends itself the same way it is used. Adding a tenet, an opinion, a discipline, a process, or a step is a step, each with its own command, and the structural validators and the framework's own Gherkin requirements hold the result to the same rules.

Scope

Where the methodology ends and the SDK begins

The methodology describes the whole life cycle, including roles where an agent sits in a meeting, takes the notes, and drafts the ticket. The SDK implements the coding-agent slice: the steps a developer runs from inside a coding agent against a repository, a ticket, and a knowledge base. The business case tells the wider story and states the assumptions behind its figures; the methodology lists every step the SDK delivers.

Read the methodology

Every process, discipline, and step, with the command that runs it and the guidance the agent follows.

Read it in the repository on GitHub