Skip to content

feat(roster): add broomva/role-x (P17) to skill roster#13

Merged
broomva merged 1 commit into
mainfrom
feat/roster-add-role-x
May 14, 2026
Merged

feat(roster): add broomva/role-x (P17) to skill roster#13
broomva merged 1 commit into
mainfrom
feat/roster-add-role-x

Conversation

@broomva
Copy link
Copy Markdown
Owner

@broomva broomva commented May 14, 2026

Summary

Adds broomva/role-x to the bstack skill ROSTER and bumps the total count 29 → 30.

broomva/role-x ships P17 — Lens-Routed Request Articulation, the typed routing layer above P5 parallel-agent dispatch. Published at https://github.com/broomva/role-x with 9 discoverability topics, MIT license, pytest CI green on Python 3.11 + 3.12.

Install: npx skills add broomva/role-x

What changed

  • SKILL.md ROSTER array: add role-x (line 145)
  • SKILL.md count 29 total30 total (3 occurrences: skill roster check, report line, bootstrap description)

What's NOT in this PR

  • L79 "The sixteen primitives" — should be "nineteen" once P18/P19 reach full workspace alignment
  • L242/L261-263 "P1–P16" prose references — same reason

These will land in a follow-up PR that reconciles bstack's prose with the workspace's actual CLAUDE.md/AGENTS.md primitive count.

Context

The P17 row already exists in the primitives table (commit 23b8cc3 PR #11). This PR completes the operational hookup so:

  1. bstack bootstrap installs role-x as part of the standard skill set
  2. The skill-roster check reports the correct count
  3. New workspaces onboarding via bstack get role-x automatically

Test plan

  • grep -c "role-x" SKILL.md → 1 occurrence in ROSTER
  • grep "30 total" SKILL.md → 1 occurrence
  • grep "all 30" SKILL.md → 1 occurrence
  • npx skills add broomva/role-x already verified working from a fresh install location
  • broomva/role-x CI green (Python 3.11 + 3.12, 21s)

🤖 Generated with Claude Code

ROSTER += role-x; count 29 → 30. broomva/role-x ships P17 Lens-Routed
Request Articulation — typed routing layer above P5 parallel-agent
dispatch. Published at https://github.com/broomva/role-x with 9
discoverability topics on the repo (skills, agent-skills, claude-code,
bstack, bstack-primitive, prompt-engineering, python, context-engineering,
reasoning-network).

Install: npx skills add broomva/role-x

The P17 row already exists in the primitives table (commit 23b8cc3, PR #11
'feat: sync P17 + add P18 Format-Follows-Audience to bstack'); this PR
brings the ROSTER + count text into alignment so `bstack bootstrap` and
the skill-roster check pick up role-x.

NOT touched in this PR (out of scope; defer to a separate cleanup):
- L79 "The sixteen primitives" — should be "nineteen" once P18/P19 are
  also fully reconciled with the workspace CLAUDE.md/AGENTS.md
- L242/L261-263 "P1–P16" references — same reason

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 14, 2026

Warning

Rate limit exceeded

@broomva has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 6 minutes and 14 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d24a95e3-527a-4f3e-b198-e3c740cf4b21

📥 Commits

Reviewing files that changed from the base of the PR and between f6a0c1b and c4de952.

📒 Files selected for processing (1)
  • SKILL.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/roster-add-role-x

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@broomva broomva merged commit f412105 into main May 14, 2026
1 check passed
broomva added a commit that referenced this pull request May 15, 2026
Closes the gap where `bstack bootstrap` installed role-x as a skill (via
ROSTER in #13) but left its hooks dormant in `.claude/settings.json` —
agents installing bstack fresh had P17 routing files on disk but no
UserPromptSubmit or coverage trigger. Every workspace had to wire those
by hand. Confirmed end-to-end against this workspace's live settings.

Added (assets/templates/settings.json.snippet):
- UserPromptSubmit block → role-x-intake-hook.sh (P17 per-prompt routing)
- SessionStart block extended → role-x-coverage-hook.sh (P17 registry-
  health nudge, ≤1/24h cooldown, silent when fire-rate ≥30%)
- New ${BROOMVA_HOME} placeholder for $HOME-rooted paths (npx skills
  add -g installs at ${HOME}/.agents/skills/<name>)

Extended (scripts/bootstrap.sh):
- Phase 3 sed substitution: -e for both ${BROOMVA_WORKSPACE} and
  ${BROOMVA_HOME} → workspace dir and $HOME respectively
- Phase 3 Python merge path: two-step .replace() for the same two
  placeholders before json.loads()
- Idempotent merge logic unchanged — existing-by-basename detection
  already handles re-runs correctly (verified Case C: 0 new wires on
  a workspace where both role-x hooks were already manually wired)
- Drive-by fix: log format string was "PP8"/"PP17" (double-P) because the
  _bstack_primitive value already contains the "P" prefix; corrected
  to ({primitive}) with P? fallback when key absent

Extended (scripts/doctor.sh):
- §6 hook-wiring array gets role-x-intake-hook.sh + role-x-coverage-hook.sh
  with P17 labels
- Old skill-freshness-hook.sh label corrected from P7 → P8 (post-PR #16
  numbering)
- Docstring header §5 now enumerates all 5 hooks by primitive
- Docstring header §6 adds P17 disk-presence reachability spec

Validation:
- JSON valid on new snippet (python3 -c 'json.load(...)')
- Bash syntax green on bootstrap.sh + doctor.sh (bash -n)
- Three dry-run cases on /tmp scratch:
    A. Fresh scaffold → snippet renders 5 hook events with absolute
       ${HOME} paths resolved correctly
    B. Existing settings.json with only P1/P2 → merge adds 4 missing
       hooks (P8 freshness, P17 intake, P17 coverage, P1 notification)
    C. Workspace with all 5 hooks already wired → 0 new wires
       (idempotency confirmed)
- doctor.sh on live workspace: all 5 hook checks [ok] including the
  two new P17 entries

Coordination with concurrent PRs:
- PR #17 (broomva): SKILL.md prose drift + AGENTS/CLAUDE templates +
  scaffold-and-doctor test. Touches SKILL.md, AGENTS.md.template,
  CLAUDE.md.template, template_lockstep.test.sh — NO overlap with this
  PR (verified via gh pr diff 17).
- SKILL.md ## Hooks section update deferred to a follow-up PR after
  #17 lands, to keep edits non-overlapping.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant