Development lanes
Pick the row for the behavior you're changing. Area AGENTS.md files set local constraints; the architecture contract sets layer rules.
Lanes
| Change | Owner / guidance | Relevant verification |
|---|---|---|
| Workflow model, validation, execution semantics, ports | Engine | Focused engine tests; workflow acceptance for execution; public API check for public contracts |
| Run hosting, active retry, checkpoint/replay, execution cwd | Orchestration, runtime | Orchestration tests and workflow acceptance |
| Catalogs, settings, storage, tools I/O | Orchestration | Focused service/adapter tests; compatibility coverage for saved data |
| Provider transport, auth, streaming, mapping | Providers | Provider tests; Bedrock lane for AWS changes |
| Tauri handlers, event bridge, bootstrap | Desktop | Desktop command/event coverage |
| UI state, interactions, DTOs, invoke wrappers | UI | Typecheck and focused Vitest; native coverage for IPC changes |
| Cross-layer behavior | Runtime, testing | Full gate plus desktop/Bedrock lanes when affected |
| Docs and agent instructions only | Docs | Changed links, anchors, paths, command syntax, examples, and diff |
Async ownership: threading. Unclear terms: glossary. Routine edits don't need a full architecture review.
Skills
Use a skill when its guidance helps. File location alone doesn't pick the skill; editing crate docs doesn't need an implementation skill.
| Skill | Use when |
|---|---|
| openflow-engine-change | Changing execution semantics, validation, or port contracts |
| openflow-orchestration-change | Changing run hosting, persistence, or backend wiring |
| openflow-provider-change | Changing provider transport, auth, streaming, or mapping |
| openflow-ui-change | Changing UI interaction/state or desktop seam integration |
| rust-hexarc-organizer | Resolving uncertain ownership or dependency violations |
| openflow-finish-change | Assessing readiness or selecting missing verification |
| product-docs-writer | Explicitly requested product documentation workflow |
| openflow-deploy-ready | Explicit release preparation/execution; completion stops at draft Release |
Verification
Local edits, builds, linting, and tests the task needs run without per-step approval. Use temporary persistence fixtures. Live-provider smoke can use saved credentials and incur charges, so it needs authorization.
| Purpose | Command |
|---|---|
| Rust compile / lint | ./scripts/check-fast.sh <crate> / ./scripts/check-fast.sh --clippy <crate> |
| Engine | ./scripts/verify/test-engine.sh |
| Providers | ./scripts/verify/test-providers.sh |
| Orchestration | ./scripts/verify/test-orchestration-lib.sh |
| Execution acceptance | ./scripts/test-fast.sh --execution |
| Desktop | ./scripts/test-fast.sh --desktop |
| Bedrock / AWS | ./scripts/verify/test-providers-bedrock.sh |
| UI types | npm --prefix crates/ui run typecheck |
| Focused UI test | npm --prefix crates/ui run test -- src/api.test.ts (replace test path) |
| Changed layer boundaries | ./scripts/check-architecture.sh |
| Changed engine public contract | ./scripts/check-engine-public-api.sh |
| Code PR readiness, release, cross-layer change, or requested full gate | ./scripts/verify.sh |
| Full workspace Rust only | ./scripts/verify.sh test |
Use focused checks for local changes. Docs/instruction-only changes skip Rust/UI suites unless they affect executable examples or test/build behavior. Rerun passing coverage only after new changes, failures, or unresolved concerns.
The default full gate already runs workflow acceptance via test-fast --execution; don't add a standalone run. It excludes desktop/Tauri and Bedrock-specific coverage, so add those lanes when affected. --deep adds optional mutation testing. Testing workflows covers test placement, granular commands, and environment constraints.
Completion
Verify the behavior where it's consumed (code or UI), fix failures the change caused, and report checks and remaining limitations. Reuse results from checks on unchanged code. Report pending CI and blocked checks as such.
Stop at a requested review point, a decision needing user input, or an external blocker, and state the exact next action. Finishing verification doesn't authorize publication.
