一键导入
implement
Execute a plan across orbit-ui-mobile + orbit-api with validation loops
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Execute a plan across orbit-ui-mobile + orbit-api with validation loops
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Deep code review of a diff across both Orbit repos against one shared rubric, orchestrating the five review subagents and a backward-compat guard. Use when the user asks to review a PR, file, folder, or staged changes in orbit-ui-mobile or orbit-api. Replaces /review and /security-review.
Get an independent cross-model second opinion (GLM-5.2 via opencode) on a specific, load-bearing technical claim or a Critical code-review finding — a different model reads the claim + code and returns AGREE / DISAGREE / UNSURE. Use to stress-test a single Critical finding, a risky assertion, or a close call before you commit to it. Auto-fired inside /pr-review on each Critical finding that survives the skeptic. Not for open-ended research (use /deep-research) or multi-lens judgement (use /llm-council).
Break a PRD into GitHub issues across orbit-ui-mobile + orbit-api
Answer an open-ended "what's the best way to…?" question with orchestrated multi-agent deep web research. Decompose the question, fan out narrow research subagents in parallel, verify the load-bearing claims adversarially, iterate to saturation, then synthesize ONE opinionated, source-backed, decision-ready recommendation. Orbit-aware (dual-repo stack, solo-dev cost calibration). Use for technology/vendor choices, architecture & tooling decisions, cost comparisons, migration approaches, or best-practice questions — anything whose answer needs current external evidence beyond the codebase. Not for code edits, single-fact lookups, or questions answerable from the repo alone.
Create implementation plan with cross-repo codebase analysis
Prime agent with Orbit project context (both repos + optional GitHub issue)
| name | implement |
| description | Execute a plan across orbit-ui-mobile + orbit-api with validation loops |
| argument-hint | <path/to/plan.md | issue-number> [issue-number ...] |
Plan: $ARGUMENTS
Execute the plan end-to-end across the affected repos with rigorous self-validation.
Core Philosophy: Validation loops catch mistakes early. Run checks after every change. Fix issues before moving on.
Golden Rule: If validation fails, fix it before moving on. Never accumulate broken state.
Parse $ARGUMENTS. Count numeric tokens (123, #123).
| Numeric arg count | Mode |
|---|---|
| 0 | Path-based — argument is a plan file path. Continue with Phase 1 below. |
| 1 | Single-issue — argument is one issue number. Plan path = .claude/plans/issue-<N>.plan.md. Continue with Phase 1. |
| ≥ 2 | Multi-issue — jump to "Multi-issue mode". |
| Repo | Root |
|---|---|
orbit-ui-mobile (hub) | C:\Users\thoma\Documents\Programming\Projects\orbit-ui-mobile |
orbit-api | C:\Users\thoma\Documents\Programming\Projects\orbit-api |
Read the plan file (resolve from arguments per the mode detection table). Extract:
/implement will close this after successIf plan not found:
Error: Plan not found at $ARGUMENTS
Create one first: /plan <issue-number>
For each affected repo, check state and create branch.
Derive from plan filename: feature/{kebab-name} (use fix/ if metadata says BUG_FIX, chore/ if REFACTOR/tech).
git -C "C:\Users\thoma\Documents\Programming\Projects\orbit-ui-mobile" branch --show-current
git -C "C:\Users\thoma\Documents\Programming\Projects\orbit-ui-mobile" status
| State | Action |
|---|---|
| On main, clean | git checkout -b feature/{name} |
| On main, dirty | STOP: ask user to stash or commit |
| On the target feature branch | Use it |
| On a different feature branch | STOP: ask user |
Same check, same branch name (feature/{name}) so the two PRs are easy to pair.
For each task in the plan, in order:
Before writing code:
Run the validation command for the repo you just edited.
orbit-ui-mobile:
cd "C:\Users\thoma\Documents\Programming\Projects\orbit-ui-mobile"
npm run type-check
orbit-api:
cd "C:\Users\thoma\Documents\Programming\Projects\orbit-api"
dotnet build
If it fails: read the error, fix it, re-run. Do not proceed until passing.
Task 1: ui-mobile CREATE packages/shared/src/types/X.ts PASS
Task 2: ui-mobile UPDATE packages/shared/src/api/endpoints.ts PASS
Task 3: api CREATE src/Orbit.Application/X/Commands/... PASS
If you deviate from the plan, log it for the report.
Invoke the parity-checker subagent with the list of edited files. It returns PAIRED / PARTIAL / MISSING per pair. Fix anything not PAIRED.
Also invoke i18n-syncer if any user-facing strings were added/changed.
If the change touches both repos, invoke contract-aligner to verify shapes match across packages/shared/src/types/* and orbit-api DTOs.
cd "C:\Users\thoma\Documents\Programming\Projects\orbit-ui-mobile"
npm run lint
npm run type-check
npm test
cd "C:\Users\thoma\Documents\Programming\Projects\orbit-api"
dotnet build
dotnet test
You MUST write tests for new code (unit tests only — no integration or E2E suites exist):
Do NOT proceed to Phase 6 (Report) until E2E passes.
Execute every E2E step in the plan as a checklist. For frontend changes, this means launching the dev server and exercising the feature in a browser (per root CLAUDE.md). For parity-required: yes, repeat on mobile.
If the plan has no E2E section, perform a smoke test: start the relevant app(s), exercise the new path, verify behavior.
Hard gate: Static checks + unit tests alone are not enough.
Output path: .claude/reports/{plan-name}-report.md
mkdir -p .claude/reports
# Implementation Report
**Plan**: `{plan-path}`
**Issue**: #{N} (or "N/A")
**Status**: COMPLETE
## Branches
| Repo | Branch |
|---|---|
| orbit-ui-mobile | `feature/{name}` (or "N/A") |
| orbit-api | `feature/{name}` (or "N/A") |
## Summary
{Brief description of what was implemented}
## Tasks Completed
| # | Repo | Task | File | Status |
|---|---|---|---|---|
| 1 | ui-mobile | {desc} | `path` | PASS |
| 2 | api | {desc} | `path` | PASS |
## Validation Results
### orbit-ui-mobile
| Check | Result |
|---|---|
| Lint | PASS / FAIL |
| Type check | PASS / FAIL |
| Unit tests | PASS ({N}) / FAIL |
| E2E | PASS / SKIPPED |
### orbit-api
| Check | Result |
|---|---|
| Build | PASS / FAIL |
| Tests | PASS ({N}) / FAIL |
## Parity Check (if applicable)
- [ ] Web ↔ mobile hooks match
- [ ] i18n keys in both locales
- [ ] Shared validation used
## Files Changed
| Repo | File | Action | Lines |
|---|---|---|---|
| ui-mobile | `src/x.ts` | CREATE | +{N} |
| api | `src/Orbit.Application/...` | UPDATE | +{N}/-{M} |
## Deviations from Plan
{list with rationale, or "None"}
## Tests Written
| Repo | Test File | Cases |
|---|---|---|
| ... | ... | ... |
mkdir -p .claude/plans/completed
mv $ARGUMENTS .claude/plans/completed/
Ask the user to confirm before pushing. Show the diff summary and proposed commit message first.
Conventional Commit format. Scope: web, mobile, shared, api, or a feature name. For repo:both, two separate commits (one per repo).
git -C "<repo-root>" push -u origin feature/{name}
For each repo with changes, create a PR with gh pr create. For repo:both, cross-link the descriptions.
Important for repo:both: Only the orbit-ui-mobile PR uses Closes #N (issue lives there). The orbit-api PR uses Refs thomasluizon/orbit-ui-mobile#N.
Capture each PR's URL.
If GitHub Issue in plan metadata is "N/A", skip.
gh issue comment {N} --repo thomasluizon/orbit-ui-mobile --body-file {tmp-comment-path}
Don't manually close — the Closes #N in the orbit-ui-mobile PR description closes it on merge.
## Implementation Complete
**Plan**: `{plan-path}`
**Issue**: #{N}
**Status**: PASS
### Branches & PRs
| Repo | Branch | PR |
|---|---|---|
| orbit-ui-mobile | `feature/{name}` | {url} |
| orbit-api | `feature/{name}` | {url} |
### Validation: PASS in all repos.
### Next Steps
1. Request review on each PR
2. Squash-merge `orbit-api` first, then `orbit-ui-mobile` (so the API contract is live before the consumer)
User passed 2+ issue numbers. Implement each in its paired worktree in parallel.
For each issue N, check:
C:/Users/thoma/Documents/Programming/Projects/orbit-ui-mobile/.claude/worktrees/issue-<N>/.claude/plans/issue-<N>.plan.mdIf a plan is missing, surface the issues that lack plans and ask whether to run /plan <N1> <N2> ... first (or to skip them).
Use the Agent tool to spawn ONE subagent per issue with a plan, in parallel. Each subagent:
cwd set to the orbit-ui-mobile worktree for that issue.Concurrency cap: 3 subagents at a time. Queue the rest. (dotnet build thrashing is the main concern — don't raise this without good reason.)
Print one row per issue:
Issue PR(s) Validation Deviations
#100 ui-mobile PR #N1 / api PR #N2 PASS None
#101 ui-mobile PR #N3 PASS renamed Foo→Bar (plan said Baz)
#102 FAILED — dotnet build error in handler signature FAILED N/A
For FAILED rows: surface the underlying error and the worktree path so the user can investigate manually.
Failure handling: keep going. A failing subagent does NOT halt its siblings. The aggregate report lists all failures at the end.
| Failure | Action |
|---|---|
npm run type-check fails | Read error, fix, re-run |
dotnet build fails | Read error, fix, re-run |
| Tests fail | Bug in implementation or test — fix the actual issue, re-run |
| Lint fails | Try auto-fix (npm run lint -- --fix), then manual |
| Migration error | Check dotnet ef migrations add ran correctly; never edit applied migrations |
| Parity check fails | Add the missing file/hook/i18n key before proceeding |
| Push blocked | Branch protection on main — never push directly; create a feature branch |
Never use --no-verify to skip hooks. Investigate and fix the underlying issue.