Source profileQuality 96/100Review permissions

aomi-labs/skills/aomi-build/SKILL.md

aomi-build

Scaffold new Aomi apps and plugins from API docs, OpenAPI/Swagger specs, or SDK references. aomi-build generates production-ready Rust SDK crates (lib.rs, client.rs, tool.rs) with tool schemas, preambles, host-interop flows, and validation — turning a vendor's API surface into AI-agent-callable tools. It covers the current `aomi-build` OpenAPI pipeline (`gen-specs` → `gen-client` → `gen-tool` → curate → compile/test) as well as greenfield apps. Use when the user wants to scaffold a new Aomi app

Source repository stars
7
Declared platforms
3
Static risk flags
3
Last source update
2026-08-23
Source checked
2026-08-25

Decision brief

What it does: where it fits

Scaffold new Aomi apps and plugins from API docs, OpenAPI/Swagger specs, or SDK references. aomi-build generates production-ready Rust SDK crates (lib.

Best for

  • Scaffold a new Aomi app from an OpenAPI spec or REST API
  • Wrap an existing SDK as agent-callable Aomi tools
  • Extend an Aomi runtime with new protocol integrations

Not for

  • Tasks that require unconfirmed production actions or broad system permissions.
  • Environments where the pinned source and install steps cannot be inspected.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexDeclaredSource recordInstall path and trigger
Claude CodeDeclaredSource recordInstall path and trigger
CursorDeclaredSource recordInstall path and trigger
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/aomi-labs/skills --skill "aomi-build"
Safe inspection promptEditorial

Inspect the Agent Skill "aomi-build" from https://github.com/aomi-labs/skills/blob/783b6debae3182aa4906fbbc301cb2a27510d0c9/aomi-build/SKILL.md at commit 783b6debae3182aa4906fbbc301cb2a27510d0c9. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Quick Start

    Review the “Quick Start” section in the pinned source before continuing.

    Review and apply the “Quick Start” source section.
  2. 02

    Instructions

    1. Identify the integration target and its callable surface. 2. State the proposed toolset (3–8 intent-shaped tools) before coding. 3. Scaffold greenfield apps with aomi-build init ; scaffold OpenAPI-driven apps with aomi-build new-app or the staged gen-specs / gen-client / gen-…

    Identify the integration target and its callable surface.State the proposed toolset (3–8 intent-shaped tools) before coding.Scaffold greenfield apps with aomi-build init ; scaffold OpenAPI-driven apps with aomi-build new-app or the staged gen-specs / gen-client / gen-tool pipeline.
  3. 03

    Default Workflow

    1. Identify the product surface: - What external API, SDK, repo, or spec is the source of truth? - What concrete callable surface exists: REST, GraphQL, JSON-RPC, gRPC, webhook, CLI contract, or something else? - Is there a real target we can point the app at: hosted service, se…

    Identify the product surface:What external API, SDK, repo, or spec is the source of truth?What concrete callable surface exists: REST, GraphQL, JSON-RPC, gRPC, webhook, CLI contract, or something else?
  4. 04

    When to Use

    Do not use this skill for executing transactions — use aomi-transact for that.

    Scaffold a new Aomi app from an OpenAPI spec or REST APIWrap an existing SDK as agent-callable Aomi toolsExtend an Aomi runtime with new protocol integrations
  5. 05

    Prerequisites

    Rust toolchain (2024 edition) and cargo on PATH

    Rust toolchain (2024 edition) and cargo on PATHgit on PATHAomi SDK v3.0.1 or newer

Permission review

Static risk signals and limitations

Runs scripts

medium · line 23

The documentation asks the agent to run terminal commands or scripts.

Current `aomi-build` binary, or run it from source with the `cli` feature

Runs scripts

medium · line 29

The documentation asks the agent to run terminal commands or scripts.

cargo run -p aomi-sdk --features cli --bin aomi-build -- init my-integration

Network access

medium · line 31

The documentation includes network, browsing, or remote request actions.

cargo run -p aomi-sdk --features cli --bin aomi-build -- new-app geckoterminal --from-url https://api.geckoterminal.com/docs/v2/swagger.json

Writes files

medium · line 152

The documentation asks the agent to create, modify, or delete local files.

Scaffold or update the Aomi app using the standard file split:

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score96/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars7SourceRepository attention, not individual Skill quality
Compatibility3 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
aomi-labs/skills
Skill path
aomi-build/SKILL.md
Commit
783b6debae3182aa4906fbbc301cb2a27510d0c9
License
MIT
Collected
2026-08-25
Default branch
main
View the original SKILL.md

Aomi Build

Overview

Aomi Build scaffolds production-ready Rust SDK crates for Aomi apps and plugins from OpenAPI/Swagger specs, SDK docs, or product requirements. Generates lib.rs, client.rs, tool.rs with typed tool schemas, host-interop flows, and validation steps.

When to Use

  • Scaffold a new Aomi app from an OpenAPI spec or REST API
  • Wrap an existing SDK as agent-callable Aomi tools
  • Extend an Aomi runtime with new protocol integrations

Do not use this skill for executing transactions — use aomi-transact for that.

Prerequisites

  • Rust toolchain (2024 edition) and cargo on PATH
  • git on PATH
  • Aomi SDK v3.0.1 or newer
  • Local aomi-sdk checkout at ../aomi-sdk (recommended)
  • Current aomi-build binary, or run it from source with the cli feature

Quick Start

cd ../aomi-sdk
cargo run -p aomi-sdk --features cli --bin aomi-build -- init my-integration
cargo run -p aomi-sdk --features cli --bin aomi-build -- compile --app my-integration
cargo run -p aomi-sdk --features cli --bin aomi-build -- new-app geckoterminal --from-url https://api.geckoterminal.com/docs/v2/swagger.json

Instructions

  1. Identify the integration target and its callable surface.
  2. State the proposed toolset (3–8 intent-shaped tools) before coding.
  3. Scaffold greenfield apps with aomi-build init <name>; scaffold OpenAPI-driven apps with aomi-build new-app <name> or the staged gen-specs / gen-client / gen-tool pipeline.
  4. Implement client.rs (HTTP, auth, models), tool.rs (DynAomiTool impls), lib.rs (manifest + preamble).
  5. For execution apps, return ToolReturn::with_routes(...) instead of bare JSON.
  6. Build and validate: aomi-build compile --app <name> or cargo run -p aomi-sdk --features cli --bin aomi-build -- compile --app <name>. For generated OpenAPI apps, also run aomi-build test-schema <name> when the live API is safe to fuzz.

Examples

grep -r "dyn_aomi_app!" ../aomi-sdk/apps/
cargo run -p aomi-sdk --features cli --bin aomi-build -- compile --app binance
cargo test --manifest-path apps/my-integration/Cargo.toml

Output

  • Rust crate at apps/<name>/ with lib.rs, client.rs, tool.rs, Cargo.toml
  • Compiled .so/.dylib plugin artifact under target/
  • Typed tool schema embedded in the plugin manifest

Error Handling

ErrorCauseSolution
compile reports zero pluginsNo tracked or discoverable apps/*/Cargo.tomlCheck the app path and package name; current compile scans tracked manifests and the apps directory
SDK version mismatchPlugin built against old SDKBump version in Cargo.toml, rebuild all
JsonSchema derive failedMissing derive on ArgsAdd schemars dep, #[derive(JsonSchema)] on Args
Async tool hangsis_canceled() not polledAdd cancellation check in run_async loop
Installed aomi-build lacks deployOld binary on PATHRun from source with cargo run -p aomi-sdk --features cli --bin aomi-build -- ... or reinstall from the current repo
Generated tool names are endpoint-shapedgen-tool stubs one tool per operationIdCurate tool.rs into user-intent tools before shipping
progenitor failsSpec violates generator assumptionsInspect openapi.preprocessed.yaml, patch openapi.yaml, or add a generic preprocessing pass

Safety Justification

Bash(cargo:*, git:*) — restricted to two argv prefixes. cargo runs aomi-build, builds, and tests crates; git runs ls-files and add only. No other shell commands permitted; permissions.shell enforces this at the OWASP AST03 level.

Read — reads within ./ and ../aomi-sdk/ only. Write — writes to ./apps/, ../aomi-sdk/apps/, Cargo.toml, Cargo.lock, target/ only; identity files (SOUL.md, MEMORY.md, AGENTS.md, build.rs) are deny_write-listed. Edit — same paths as Write. Grep — read-only search, no writes.

Risk tier: L1 (source files + Rust toolchain only; no fund movement, no network calls).


Use this skill for tasks like:

  • "Build an Aomi app from this OpenAPI spec."
  • "Turn these REST endpoints into an Aomi plugin."
  • "Scaffold a new Aomi SDK app for this product/API."
  • "Update an existing Aomi app to support these new endpoints."
  • "Turn these builder docs or SDK repos into an Aomi assistant."

First Read

If a local aomi-sdk checkout exists (often at ../aomi-sdk), inspect these first. The current SDK is v3.0.1, Rust 2024 edition. The aomi-build binary is part of the aomi-sdk crate behind the cli feature.

  • sdk/examples/app-template-http/src/lib.rs — canonical HTTP-API template (sync read-only)
  • sdk/examples/app-template-http/src/client.rs
  • sdk/examples/app-template-http/src/tool.rs
  • sdk/examples/app-template-http/Cargo.toml — note edition = "2024" and crate-type = ["cdylib"]
  • sdk/src/types.rs and sdk/src/route.rsDynToolCallCtx, DynAomiTool, async tool contracts, and ToolReturn / RouteStep
  • docs/repo-structure.md — file roles and authoring guidelines
  • docs/host-interop.md — public host tools (encode_and_call, stage_tx, simulate_batch, commit_txs, evm_commit_message) plus SVM route targets
  • docs/aomi-build.md and sdk/bin/build/CONTRIBUTING.md — current aomi-build commands (gen-specs, gen-client, gen-tool, new-app, test-schema, tighten-spec, init, compile, deploy, connect, sdk check|fix)
  • docs/sdk-version-compatibility.md — exact-match SDK version gate enforced via aomi_sdk_version symbol
  • 2 or 3 relevant apps under apps/*/src/{lib,client,tool}.rs. Recommended:
    • apps/binance — execution-oriented with required secrets and normalized models
    • apps/oneinch — execution planner with routed quote → approval → swap flow
    • apps/geckoterminal — current OpenAPI/progenitor app-local pipeline (openapi.yaml, generated src/client/, curated tool.rs)
    • apps/svm-transfer — current SVM lane-1/lane-2 route patterns (svm_stage_ix, svm_stage_tx, svm_commit_ix, svm_commit_tx)
    • apps/khalani, apps/polymarket, or apps/polymarket-rewards — host handoff via ToolReturn routes

If the supplied docs mostly point to GitHub repositories, SDKs, or examples instead of listing public endpoints:

  • treat those linked repositories as the real source of truth
  • inspect their README, config examples, example commands, and RPC/API surfaces
  • check whether they expose or produce a runnable service interface such as REST, GraphQL, JSON-RPC, gRPC, webhooks, or another stable client contract
  • prefer building against that executable surface instead of wrapping the docs themselves
  • avoid inventing a public transactional API that the docs do not actually publish

If the current repo is aomi-widget, also inspect:

  • apps/landing/content/examples/*.mdx
  • apps/landing/content/guides/build/**/*.mdx

If the aomi-sdk checkout is not available, read:

  • references/aomi-sdk-patterns.md — manifest shape, file roles, real-app conventions
  • references/spec-to-tools.md — converting OpenAPI / SDK docs / endpoint lists into intent-shaped tools
  • references/host-routes.mdToolReturn envelope and RouteStep builders for execution apps that hand off to the host wallet
  • references/examples.md — five end-to-end walkthroughs anchored to real apps (binance, builder fallback, polymarket routes upgrade, async tool with cancellation, SDK version bump)
  • references/troubleshooting.md — common build/runtime failures with concrete fixes (untracked Cargo.toml, SDK version mismatch, async tool hangs, route resolution issues, JsonSchema derive failures)

Default Workflow

  1. Identify the product surface:
    • What external API, SDK, repo, or spec is the source of truth?
    • What concrete callable surface exists: REST, GraphQL, JSON-RPC, gRPC, webhook, CLI contract, or something else?
    • Is there a real target we can point the app at: hosted service, self-hosted node, local example stack, or customer-provided endpoint?
    • Is this read-only, execution-oriented, or mixed?
    • What auth/env vars are required?
    • What user state must come from the host or caller?
    • Is this actually a public end-user API, a standard client interface exposed by a runtime/example app, or only builder-facing documentation?
  2. Describe the intended user-facing toolset before implementation:
    • list the proposed tools by name
    • say what user intent each tool serves
    • call out which tools are read-only, which prepare actions, and which write or submit
    • mention any expected target URL, runtime, or host dependency
    • if the toolset is uncertain, surface the uncertainty before coding
    • identify the primary user workflow the app should make easy first
    • keep the first pass to the smallest sufficient toolset for that workflow unless the user asked for broader API coverage
  3. Reduce the spec into semantically meaningful tools.
  4. Scaffold or update the Aomi app using the standard file split:
    • lib.rs for manifest and preamble. Register with dyn_aomi_app! including the namespaces = [...] field — ["evm-core"] for most EVM apps and generated OpenAPI apps, SVM namespaces such as ["svm-reads", "svm-ix-broadcast", "svm-tx-broadcast"] for Solana apps, or [] only for tools that need no host namespace at all. The old "common" namespace is stale and should not be copied into new apps.
    • client.rs for HTTP client, auth, models, and normalization
    • tool.rs for DynAomiTool implementations. Sync tools implement run; async tools set const IS_ASYNC: bool = true and implement run_async with DynAsyncSink::emit/complete/is_canceled (see sdk/examples/hello-app/src/lib.rs).
  5. Write the preamble around actual tool behavior, confirmation rules, and any host handoff. Execution apps that drive multi-step wallet flows return ToolReturn::with_routes(...) instead of bare JSON — see references/host-routes.md.
  6. Validate with the SDK build flow and add focused tests when logic is non-trivial.

Tool Design Rules

  • First decide what kind of app this should be:
    • product client
    • execution assistant
    • builder / SDK / runtime assistant
  • Before implementing, state the proposed toolset in concrete user-facing terms. This is part of the design, not optional polish.
  • Prefer the smallest sufficient toolset that makes the primary user workflow work end to end.
  • If there are multiple plausible integration targets, briefly state which one you are choosing and why before coding.
  • Prefer tools that interact with an actual product surface over tools that merely restate documentation.
  • A hosted API is not required. A self-hosted service, local example stack, standard RPC server, or other runnable interface still counts as a real integration target.
  • If the source material is SDK- or architecture-heavy, first ask whether it produces a service that clients call. If yes, build the client for that service.
  • Only fall back to a builder-oriented or docs-oriented tool surface when no stable executable target is available.
  • Do not mirror every endpoint 1:1 unless that is actually the cleanest model-facing API or the user explicitly asked for broad coverage.
  • Prefer 3 to 8 tools with clear user intent boundaries such as search_*, get_*, build_*, submit_*, list_*, or resolve_*.
  • Prefer intent-shaped tool names over raw protocol or transport names when practical.
  • Aggregate noisy upstream endpoints behind a smaller tool surface when the model does not need the raw distinction.
  • Prefer typed arguments over raw JSON string blobs when the primary workflow can be modeled cleanly that way.
  • Separate core tools from escape hatches. A generic fallback tool such as *_rpc or *_raw is fine, but it should not replace a clean core workflow.
  • Keep args typed and documented with JsonSchema. Field doc comments are model-facing and matter.
  • Return stable JSON with predictable keys. Normalize upstream naming, paging, and inconsistent shapes inside client.rs or helper functions.
  • Convert upstream errors into short actionable messages. Do not leak raw HTML, secrets, or giant payload dumps.

File Responsibilities

lib.rs

  • Keep it easy to scan.
  • Define PREAMBLE or a small build_preamble() hook.
  • Register tools with dyn_aomi_app!. Always include the namespaces field explicitly — namespaces = ["evm-core"] for most EVM or generated API apps, SVM namespaces for Solana apps, and namespaces = [] only when no host namespace should be injected. The macro generates the C ABI exports (aomi_create, aomi_manifest, aomi_async_tool_start, etc.) and embeds the SDK version stamp the host uses for the exact-match compatibility check.
  • Only keep manifest-level wiring here.

client.rs

  • Own the app struct, HTTP client, auth headers, env vars, typed models, and response normalization.
  • Prefer reqwest::blocking::Client with explicit timeouts for sync tools, matching the current SDK examples.
  • Keep third-party API quirks here instead of spreading them across tool implementations.

tool.rs

  • Implement DynAomiTool. Required associated types: App (the app struct from client.rs) and Args (a JsonSchema + Deserialize struct). Required consts: NAME, DESCRIPTION. Optional const: IS_ASYNC (defaults to false).
  • Use descriptions that tell the model when to call the tool, not just what endpoint it wraps.
  • Map normalized client results into concise JSON results. Sync tools return Result<Value, String> from run(); async tools return Result<(), String> from run_async() and emit progress through the DynAsyncSink. Cancellation: poll sink.is_canceled() and return Ok(()) early.
  • Use DynToolCallCtx when host state such as connected wallet, session state, or caller attributes is needed. ctx.session_id and ctx.call_id are stable identifiers for logging or routing.
  • For execution apps that hand off to the wallet, return ToolReturn::with_routes(value, [RouteStep::on_return(...).bind_as(...).prompt(...)]) instead of a bare Value. The run_with_routes() method on DynAomiTool has a default impl that wraps run() — only override it when you need routes. See references/host-routes.md.

Preamble Rules

Write the preamble from the app's real contract:

  • Define role, capabilities, workflow, and guardrails.
  • Mention tool order for multi-step flows.
  • State explicit confirmation requirements before write actions.
  • If dates matter, include the current date or instruct the app to use exact dates.
  • If the app relies on host wallet/signing tools, say that clearly and do not imply hidden infrastructure.

For deeper patterns and examples, read references/aomi-sdk-patterns.md.

Host Interop And Execution

For execution-oriented apps:

  • Follow the public host conventions from docs/host-interop.md. The available host tools include encode_and_call, stage_tx, simulate_batch, commit_txs, evm_commit_message, and SVM targets such as svm_stage_ix, svm_stage_tx, svm_commit_ix, and svm_commit_tx. Apps reference these by name or typed route markers in route hints — they are public contract, not private infrastructure.
  • Do not invent private namespaces (CommonNamespace etc.) or internal fallback behavior. Do not use the old "common" namespace in new app manifests; current host namespace names are canonical strings such as "evm-core", "svm-reads", "svm-ix-broadcast", and "svm-tx-broadcast".
  • When the next step belongs to the host wallet or signer, return a ToolReturn envelope with explicit RouteStep builders instead of any prose-based SYSTEM_NEXT_ACTION convention. The runtime's RoutedEventBridge resolves OnSyncReturn and OnBoundEvent triggers, splices wallet-callback artifacts (signature, transaction_hash) into hinted args, and injects the continuation prompt. The runtime never parses prose — structured fields are the contract.
  • Preserve exact transaction or signature args when a downstream host tool must execute them. For raw external tx payloads, use stage_tx with data: { raw: "0x..." }; for ABI-driven calls, use data: { encode: { signature, args } }.
  • Do not claim a write succeeded until the upstream API submit step has actually completed.

For deeper coverage of the routes pattern, including OnSyncReturn vs OnBoundEvent, bind_as aliases, and worked examples from apps/khalani and apps/polymarket, read references/host-routes.md.

Validation

When working inside aomi-sdk:

  • Scaffold greenfield apps with cargo run -p aomi-sdk --features cli --bin aomi-build -- init <name>, or scaffold API-driven apps with cargo run -p aomi-sdk --features cli --bin aomi-build -- new-app <platform> --from-url <url>.
  • Build the plugin with cargo run -p aomi-sdk --features cli --bin aomi-build -- compile --app <name>. Optional flags: --release, --target <triple>. The build validates the manifest, codesigns on macOS, and validates the produced plugin.
  • For OpenAPI apps, the current pipeline is gen-specs (writes apps/<p>/openapi.yaml by default, or ext/specs/<p>.yaml with --shared) → gen-client (progenitor into apps/<p>/src/client/ or ext/src/<p>/) → gen-tool (mechanical stubs) → curate → compile. openapi.preprocessed.yaml is a debug artifact overwritten by gen-client; edit openapi.yaml, not the preprocessed copy.
  • gen-tool intentionally produces endpoint-shaped stubs. Before shipping, collapse them into user-story tools, write a real preamble, and add apps/<p>/test.json when the app needs real LLM/runtime validation.
  • If compile reports zero built plugins for a brand new app, check the app path, package metadata, and whether [package.metadata.aomi.skip] is set. Current compile scans tracked manifests and the apps directory.
  • For a direct compile signal on an untracked app, use cargo build --manifest-path apps/<name>/Cargo.toml.
  • If the app has meaningful branching or normalization logic, add unit tests with aomi_sdk::testing::{TestCtxBuilder, run_tool, run_async_tool}. TestCtxBuilder::new(tool_name).build() produces a DynToolCallCtx; run_tool returns a full ToolReturn with routes; run_async_tool returns (updates, terminal).
  • The host-plugin compatibility gate is exact-match SDK version. After bumping sdk/Cargo.toml package.version, all apps must be rebuilt — the host rejects plugins whose aomi_sdk_version symbol does not match its compiled AOMI_SDK_VERSION. See docs/sdk-version-compatibility.md.
  • If a real target is available, validate the app with a short ladder:
    • compile/build
    • connectivity check
    • one representative read flow
    • one representative write or submit flow when applicable
    • post-write verification such as status, receipt, or refreshed state
  • Prefer proving one end-to-end user scenario over checking many disconnected endpoints.

When the task also touches docs or demos in aomi-widget, update the relevant examples or guides to match the new app behavior.

Output Expectations

Aim to leave behind:

  • a coherent Aomi app crate or patch
  • typed tool args and strong descriptions
  • a preamble that explains the tool contract and rules
  • stable JSON outputs for the host/model
  • an app that can point at a real product surface when one exists
  • a short validation pass or a clear note about what could not be verified

Resources

Frequently asked questions

What to verify before installation and use

What does the aomi-build source document cover?

Scaffold new Aomi apps and plugins from API docs, OpenAPI/Swagger specs, or SDK references. aomi-build generates production-ready Rust SDK crates (lib.

How do I install aomi-build?

The source record exposes this install command: npx skills add https://github.com/aomi-labs/skills --skill "aomi-build". Inspect the command and pinned source before running it.

Which Agent platforms does the source record declare?

The pinned source record declares support for: codex, claude code, cursor.

Which permission-related actions were detected?

Static rules flagged exec-script, network, write-files in the source; the page lists the matching lines and excerpts.

Alternatives

Compare before choosing

Computed 95203

PramodDutta/qaskills

API Test Suite Generator

Automatically generate comprehensive API test suites from OpenAPI specifications covering CRUD operations, error handling, authentication, pagination, and edge cases

Computed 9420

upex-galaxy/agentic-qa-boilerplate

test-automation

Plan, write, and review automated tests following KATA (Komponent Action Test Architecture) on Playwright + TypeScript, or explain existing automated tests in a sealed read-only mode. Use when writing E2E or API/integration tests, creating Page or Api components, designing ATCs, parameterizing test data, registering fixtures, reviewing test code for KATA compliance, or requesting break-down-tests / a plain-English test breakdown. The explain mode reads source and reports assertions without enter

Computed 9420

upex-galaxy/agentic-qa-boilerplate

test-documentation

Analyze, prioritize, and document test cases in TMS (Jira/Xray), or repair an existing Story-ATS-ATP-ATR-TC cascade through a sealed explicit mode. Use for Test/ATP/ATR artifacts, ROI and automation verdicts, maintaining traceability, fix-traceability, or broken TMS links. The repair-traceability mode audits, plans, waits for explicit approval, applies, and verifies without launching the general documentation workflow. Do NOT use for writing test code (test-automation) or running suites (regress

Computed 9120

upex-galaxy/agentic-qa-boilerplate

framework-development

Framework evolution mode — evolves the QA boilerplate itself (KATA, fixtures, cli/, scripts/, api/schemas/ pipeline, package.json deps). Self-contained Plan → Code → Verify → Archive pipeline; runs under the `gentle-ai install --preset minimal` install (no SDD-* skills required). Use when adding new fixture APIs, refactoring KATA base classes, evolving the installer, modifying the OpenAPI sync pipeline, or any change to the framework infrastructure that is NOT per-ticket test writing or manual Q