feat(skills): add demo-flywheel presenter skill + verification harness - #970
Open
Manuel-Jentic wants to merge 1 commit into
Open
Manuel-Jentic wants to merge 1 commit into
Manuel-Jentic wants to merge 1 commit into
Conversation
An agent-commanded, human-in-the-loop demo of the three spec-flywheel flows (import a new API -> improve it via an overlay -> react to an upstream change) against a local stack, plus a self-verifying harness that proves each flow's real effects landed. Kept un-served (like init-design) — a presenter tool, not an agent capability, so no SERVED_SKILLS entry and no mirrors. - skills/demo-flywheel/SKILL.md: narrated 2->1->3 walkthrough with a 4-gate human-in-the-loop protocol, GitHub safety defaults (--no-github/fork, draft PR, RUN_ID-fresh identifiers), corrected overlay/confirm mechanics, teardown - scripts/flywheel_verify.py: httpx PASS/FAIL harness (--flow 2|1|3|all), bootstraps org-admin, promotes imported drafts, polls overlay confirm, and exits non-zero on failure; Flow 3 self-skips if the fixture is down - config/local-sqlite-demo.yaml: non-destructive Flow-3 config (fixture manifest_url, update_check_interval_seconds=1, 127.0.0.0/8 egress) Co-authored-by: Cursor <cursoragent@cursor.com>
Manuel-Jentic
force-pushed
the
demo-flywheel-skill
branch
from
August 7, 2026 09:15
cfb072c to
4efd4e5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a presenter tool for demoing the three spec-flywheel flows end-to-end against a local stack, plus a self-verifying harness that proves each flow's real effects landed. It orchestrates the existing skills (
import-new-api,contribute-spec-fix) — it doesn't replace them.Kept un-served (like
init-design): it's a presenter tool, not an agent capability, so there's noSERVED_SKILLSentry, nocli//src/mirrors, and no drift-test obligation (drift test stays green).The demo (one API's lifecycle, in 2 → 1 → 3 order)
Flow 1 needs an already-catalogued API, so running Flow 2 first (which creates one) makes the whole demo a single coherent subject: import → improve → live → react/rollback.
What's here
skills/demo-flywheel/SKILL.md— the narrated walkthrough with an explicit 4-gate human-in-the-loop protocol (agent approval, overlay:confirm, any publicghaction, rollback), auto-proceeding on everything local/reversible.scripts/flywheel_verify.py— anhttpxPASS/FAIL harness (--flow 2|1|3|all). Bootstraps its own org-admin, promotes imported drafts, polls the overlay forconfirmed_revision_id, and exits non-zero on any failure (so it doubles as a smoke test). Flow 3 self-skips if the fixture isn't up.config/local-sqlite-demo.yaml— a non-destructive full-copy config that adds only what Flow 3 needs: the fixturemanifest_url,update_check_interval_seconds: 1(never0, which is the kill switch), and127.0.0.0/8egress so the loopback fixture is probeable.Safety / blast-radius
A real `[AUTO]` issue on `jentic/jentic-public-apis` triggers a live LLM-backed workflow that spends the repo's Bedrock secret and opens a non-draftable PR to `main`. So the demo defaults to a `--no-github` dry-run or a presenter-owned fork, makes the Flow-1 human PR a draft with a `[DEMO — do not merge]` title, uses a fresh `RUN_ID` per run (to dodge the existence-gate STOP and the duplicate-version hard-fail), and ends with a mandatory teardown (rollback + close/delete PR/issue/branch). The harness itself never touches GitHub.
Test plan
Verified end-to-end against `make start-app-sqlite` (with the demo config) + the Flow-3 fixture:
Made with Cursor