Skill: F Prime iterative development loop
Develop a feature or component through the standard phase-gated
process, then converge it in a local test-and-review loop: run unit
tests, integration tests, and manual GDS tests, run the full
multi-agent review locally only, fix what they surface, and repeat
until tests pass and findings trend to zero.
0. Approval gate — required before use
This skill runs a long, resource-intensive loop and a full multi-agent
review. Never begin it on your own initiative. Before executing:
- Present the user a short plan: the development scope, the test
commands to be run, the manual-test approach, the review setup,
and the iteration exit criteria (§3).
- Obtain the user's explicit approval to run this skill. A
general request to "develop X" is not approval to iterate; ask.
- Do not start Phase 1 (§1) until that approval is given.
1. Phase 1 — development (ask-heavy)
Follow .github/agents/fprime-development.agent.md, which classifies
the task and sequences the development skills with their phase gates
(requirements and FPP-design approval before implementation). This is
the phase to ask questions — front-load every question you can
anticipate so the iteration loop does not need to block on the user.
Implement the feature, its unit tests (test/ut/), and its
integration tests (test/int/) per those skills. Before entering the
loop, send the user a brief recap of the loop plan and any final
questions; proceed unless a gating question is unanswered.
2. Phase 2 — iteration loop (autonomous)
Prefer autonomy, but ask the user whenever forward progress cannot be
made without input (ambiguous or contradictory requirements surfaced
by a finding, a fix that would change the approved design or
interface, a test failure whose expected behavior is unclear, missing
environment/hardware access). Do not spin in place or guess.
- Run unit tests:
fprime-util generate --ut && fprime-util build --ut -j"$(nproc)"
(cd build-fprime-automatic-native-ut && ctest -j"$(nproc)")
- Run integration tests: build the relevant deployment, launch
it with the GDS (
fprime-gds), and run the test/int/ pytest
suite against it.
- Manually test the feature: exercise it end to end via the GDS
(send commands, verify events / telemetry / data products) as an
operator would. Record observations.
- Run the multi-agent review LOCALLY ONLY — the same pipeline as
.github/agents/review-orchestrator.agent.md, with one critical
change: no reviewer, aggregator, or subagent may post anything
to GitHub — no PR reviews, inline comments, issue comments,
statuses, or labels. All findings go to local files only (e.g.
review-iter-N/<agent>.md):
- Read the orchestrator,
_shared/agent-registry.yml,
_shared/review-contract.md, and each reviewer agent file fresh
from nasa/fprime devel.
- Run every
role: reviewer agent from the registry against the
local diff (git diff <base>...HEAD). Every reviewer kickoff
prompt MUST state in capital letters: LOCAL REVIEW ONLY — DO NOT
POST TO GITHUB; write findings to the local output file.
- Aggregate the findings locally per
review-summary.agent.md
into review-iter-N/summary.md.
- Triage and fix: classify each finding (fix / false positive /
acknowledged nit), fix test failures and valid findings, and
record the finding count for the iteration.
- Loop: return to step 1.
3. Exit criteria
Stop iterating when:
- all tests pass AND findings trend to zero (no new high/medium
findings; remaining findings are acknowledged nits or false
positives) — success; or
- finding counts plateau across two consecutive iterations —
summarize the residual findings for the user; or
- 5 iterations complete — report status and ask how to proceed.
Deliverables: the implementation and tests (delivered per the user's
PR workflow; the PR description may summarize the final local review
outcome, but never post the raw review as PR comments/reviews), plus
the final iteration's review-iter-N/ artifacts (per-agent findings
and summary) shared with the user.
Forbidden actions
- Never run this skill without the explicit approval required by §0.
- Never post review results to GitHub — no PR reviews, inline
comments, issue comments, commit statuses, or labels from the local
review pipeline. Validation: zero comments/reviews/statuses created
by this run on any PR or commit.
- Never skip the requirements/design approval gates of
fprime-development.agent.md.
- Never modify or weaken tests to make them pass.
- Do not give reviewer subagents a token with write scope; grant read
access only when needed for context.
1---2name: fprime-iterative-development3description: Skill: F Prime iterative development loop4---56# Skill: F Prime iterative development loop78Develop a feature or component through the standard phase-gated9process, then converge it in a local test-and-review loop: run unit10tests, integration tests, and manual GDS tests, run the full11multi-agent review **locally only**, fix what they surface, and repeat12until tests pass and findings trend to zero.1314---1516## 0. Approval gate — required before use1718This skill runs a long, resource-intensive loop and a full multi-agent19review. **Never begin it on your own initiative.** Before executing:20211. Present the user a short plan: the development scope, the test22 commands to be run, the manual-test approach, the review setup,23 and the iteration exit criteria (§3).242. Obtain the user's **explicit approval to run this skill**. A25 general request to "develop X" is not approval to iterate; ask.263. Do not start Phase 1 (§1) until that approval is given.2728## 1. Phase 1 — development (ask-heavy)2930Follow `.github/agents/fprime-development.agent.md`, which classifies31the task and sequences the development skills with their phase gates32(requirements and FPP-design approval before implementation). This is33the phase to ask questions — front-load every question you can34anticipate so the iteration loop does not need to block on the user.3536Implement the feature, its unit tests (`test/ut/`), and its37integration tests (`test/int/`) per those skills. Before entering the38loop, send the user a brief recap of the loop plan and any final39questions; proceed unless a gating question is unanswered.4041## 2. Phase 2 — iteration loop (autonomous)4243Prefer autonomy, but ask the user whenever forward progress cannot be44made without input (ambiguous or contradictory requirements surfaced45by a finding, a fix that would change the approved design or46interface, a test failure whose expected behavior is unclear, missing47environment/hardware access). Do not spin in place or guess.48491. **Run unit tests**:50 ```bash51 fprime-util generate --ut && fprime-util build --ut -j"$(nproc)"52 (cd build-fprime-automatic-native-ut && ctest -j"$(nproc)")53 ```542. **Run integration tests**: build the relevant deployment, launch55 it with the GDS (`fprime-gds`), and run the `test/int/` pytest56 suite against it.573. **Manually test the feature**: exercise it end to end via the GDS58 (send commands, verify events / telemetry / data products) as an59 operator would. Record observations.604. **Run the multi-agent review LOCALLY ONLY** — the same pipeline as61 `.github/agents/review-orchestrator.agent.md`, with one critical62 change: **no reviewer, aggregator, or subagent may post anything63 to GitHub** — no PR reviews, inline comments, issue comments,64 statuses, or labels. All findings go to local files only (e.g.65 `review-iter-N/<agent>.md`):66 - Read the orchestrator, `_shared/agent-registry.yml`,67 `_shared/review-contract.md`, and each reviewer agent file fresh68 from `nasa/fprime` `devel`.69 - Run every `role: reviewer` agent from the registry against the70 local diff (`git diff <base>...HEAD`). Every reviewer kickoff71 prompt MUST state in capital letters: LOCAL REVIEW ONLY — DO NOT72 POST TO GITHUB; write findings to the local output file.73 - Aggregate the findings locally per `review-summary.agent.md`74 into `review-iter-N/summary.md`.755. **Triage and fix**: classify each finding (fix / false positive /76 acknowledged nit), fix test failures and valid findings, and77 record the finding count for the iteration.786. **Loop**: return to step 1.7980## 3. Exit criteria8182Stop iterating when:8384- all tests pass AND findings trend to zero (no new high/medium85 findings; remaining findings are acknowledged nits or false86 positives) — success; or87- finding counts plateau across two consecutive iterations —88 summarize the residual findings for the user; or89- 5 iterations complete — report status and ask how to proceed.9091Deliverables: the implementation and tests (delivered per the user's92PR workflow; the PR description may summarize the final local review93outcome, but never post the raw review as PR comments/reviews), plus94the final iteration's `review-iter-N/` artifacts (per-agent findings95and summary) shared with the user.9697## Forbidden actions9899- Never run this skill without the explicit approval required by §0.100- **Never post review results to GitHub** — no PR reviews, inline101 comments, issue comments, commit statuses, or labels from the local102 review pipeline. Validation: zero comments/reviews/statuses created103 by this run on any PR or commit.104- Never skip the requirements/design approval gates of105 `fprime-development.agent.md`.106- Never modify or weaken tests to make them pass.107- Do not give reviewer subagents a token with write scope; grant read108 access only when needed for context.