feat(skills): genie-orca skills as top-level skills.sh-visible dirs (v6 corpo leve onto dev) - #2870
Conversation
…linear migration Written from the first full run (brain wish compiled-artifact-honesty, Orca run run_548b862451b3): work/wish/review SKILL.md drafts, scripts/retro-collect.ts, scripts/migrate-to-linear.ts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KnhHPMqbbxRftcEJsKQzHw
Carries the v6 "corpo leve" prototype (feat 49afc7a + chore a0fa6fb) onto dev and restructures it for the skills.sh channel: skills.sh only discovers top-level `skills/<name>/SKILL.md`, and the nested `skills/genie-orca/{wish,work,review}` collided with the top-level wish/work/review names. Now `skills/genie-orca-wish`, `genie-orca-work` (owns scripts/ + README) and `genie-orca-review`, names matching the bare selectors already chosen; each gets agents/openai.yaml; registered in SHIPPED_SKILL_NAMES and mirrored into plugins/genie/skills (25). Pre-condition for wish skills-everywhere B (design Risk 12). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013gGxGgKskzyzr1HRUB6cV3
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013gGxGgKskzyzr1HRUB6cV3
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
skills@1.5.23 silently serves the DEFAULT branch for any @ref (verified: a branch head, a bare SHA, and tag v5.260712.1 — whose tree has pm and wizard and no quick — all list the same 22 names including quick), so the parity job compared every PR against the default branch. It now lists the local checkout, which the CLI discovers correctly (25 found). The three genie-orca cards gain the runtime-tier phrasing the codex plugin smoke asserts, mirrored; release-docs card count 22 → 25. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013gGxGgKskzyzr1HRUB6cV3
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 875e7b1a93
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| | When | Reviewers | Merge rule | | ||
| |---|---|---| | ||
| | per group | 1 capable model (≠ engineer) | verdict as-is | | ||
| | wish-approval, PR | 3 in parallel (claude / codex / third), same read-only worktree | severity-max; any BLOCKED → BLOCKED; SHIP only if all SHIP; one merged Linear comment | |
There was a problem hiding this comment.
Replace hard-coded client routing with reviewer roles
The shared review workflow explicitly requires claude / codex / third, and genie-orca-work/SKILL.md:59 similarly prescribes claude --model sonnet and codex. These top-level skills are distributed across runtimes, so client-specific names prevent coordinators on other supported clients from following the workflow; express these as capable reviewer/fast-worker roles and let each runtime map them to native delegation surfaces.
AGENTS.md reference: AGENTS.md:L34-L34
Useful? React with 👍 / 👎.
| * migrate-to-linear — ONE-SHOT migration of a repo's genie board/roadmap into Linear. | ||
| * | ||
| * bun migrate-to-linear.ts --repo <path> --team <KEY> [--orca <bin>] [--apply] [--project <name>] |
There was a problem hiding this comment.
Add contract tests for both new script CLIs
This adds two user-invokable script CLIs but no tests covering their success path, error exit code/stderr, or idempotent reruns. The missing coverage already leaves release-only dependency resolution and real WISH/INDEX formats untested, so both commands need fixtures exercising the required CLI behaviors before being shipped.
AGENTS.md reference: AGENTS.md:L33-L33
Useful? React with 👍 / 👎.
| */ | ||
| import { existsSync, readFileSync, readdirSync } from 'node:fs'; | ||
| import { join } from 'node:path'; | ||
| import { v5 as uuid5 } from 'uuid'; |
There was a problem hiding this comment.
Bundle uuid with the shipped migration script
When this skill is installed from a release tarball or through skills.sh, only the skill tree is available; the root package.json and node_modules containing uuid are not copied by scripts/build-binary.sh. Running the installed script therefore fails immediately with Cannot find package 'uuid', before even producing a dry-run, so the script must be dependency-free or ship its dependency within the skill payload.
AGENTS.md reference: AGENTS.md:L55-L57
Useful? React with 👍 / 👎.
| (md.match(/\*\*Status\*\*\s*\|\s*([^|\n]+)/) ?? md.match(/\*\*Status:\*\*\s*([^\n]+)/))?.[1]?.trim() ?? 'UNKNOWN'; | ||
| const title = md.match(/^#\s+(?:Wish:\s*)?(.+)$/m)?.[1]?.trim() ?? slug; | ||
| const linear = md.match(/\*\*Linear\*\*\s*\|\s*([A-Z]+-\d+)/)?.[1]; | ||
| const groups = [...md.matchAll(/^###\s+Group\s+\d+:\s*(.+)$/gm)].map((m) => m[1].trim()); |
There was a problem hiding this comment.
Accept the repository's alphanumeric group identifiers
For active wishes using the established Group A, Group A1, or similar headings, this digit-only regex returns an empty group list. Current examples include codex-plugin-dogfood-remediation/WISH.md and genie-dual-mode-orca-plugin/WISH.md, so --apply creates their parent issues but silently creates none of the required child issues.
Useful? React with 👍 / 👎.
| : ''; | ||
| const section = (name: string) => { | ||
| const m = index.match(new RegExp(`^## ${name}\\n([\\s\\S]*?)(?=^## |\\Z)`, 'm')); | ||
| return m ? [...m[1].matchAll(/^- \*\*(.+?)\*\*/gm)].map((x) => x[1]) : []; |
There was a problem hiding this comment.
Parse normal INDEX list entries into the triage issue
The repository's actual Raw and Simmering entries begin with Markdown links or plain text, such as - [control-plane-contract](...), rather than - **...**. This matcher therefore reports both sections as empty for the current .genie/INDEX.md and omits the triage issue entirely, leaving all intake behind during migration.
Useful? React with 👍 / 👎.
| const tasks = await orca('orchestration', 'task-list'); | ||
| provenance.push(tasks.cmd); | ||
| const taskRows: any[] = tasks.result.tasks ?? tasks.result; |
There was a problem hiding this comment.
Verify task-list belongs to the requested run
When the invoking terminal is bound to a different Orca run than --run, task-list reads that currently bound run while RUN is used only in the output heading and JSON metadata. The collector can consequently publish another run's tasks and totals under the requested run ID; compare the returned runId with RUN and fail clearly, or explicitly select the requested run before collecting.
Useful? React with 👍 / 👎.
Carries the two
v6/corpo-levecommits (49afc7a prototype, a0fa6fb bare selectors) ontodev, restructured for the skills.sh channel:skills/<name>/SKILL.md; the nestedskills/genie-orca/{wish,work,review}were invisible (and collide withwish/work/reviewunder--full-depth).skills/genie-orca-wish,skills/genie-orca-work(ownsscripts/retro-collect.ts,scripts/migrate-to-linear.ts, README),skills/genie-orca-review— dir == frontmatter name == bare selector.agents/openai.yaml(skills-lint contract); registered inSHIPPED_SKILL_NAMES; plugin mirror resynced (25 skills, byte-identical); biome override path updated; knip scans the scripts (uuid is used by migrate-to-linear);package.jsonversion conflict resolved to dev's.Gates: skills-lint OK, sync-plugin-skills --check OK, lint (3 pre-existing warnings), typecheck, knip, complexity budget, orca-bundle/hook lints, orca-manifest-parity + skills-inventory-parity tests green; pre-push
check:fastpassed.Pre-condition for Wish B of
skills-everywhere(design Risk 12).🤖 Generated with Claude Code
https://claude.ai/code/session_013gGxGgKskzyzr1HRUB6cV3