Skip to content

feat(catalog): add Staff Engineer Mode#146

Open
sirmarkz wants to merge 2 commits into
hashgraph-online:mainfrom
sirmarkz:add-staff-engineer-mode
Open

feat(catalog): add Staff Engineer Mode#146
sirmarkz wants to merge 2 commits into
hashgraph-online:mainfrom
sirmarkz:add-staff-engineer-mode

Conversation

@sirmarkz
Copy link
Copy Markdown

Summary

  • Add Staff Engineer Mode to the Development & Workflow catalog section.
  • Mirror the Staff Engineer Mode Codex bundle, including router skill, shared references/templates, top-level routed specialists, icon, and .codexignore.
  • Teach the marketplace generator to retain Staff Engineer Mode's top-level specialists/ directory so future syncs keep the mirrored bundle installable.

Validation

  • python3 scripts/check-alphabetical.py README.md
  • python3 scripts/validate-plugin-pr.py --base-ref origin/main
  • python3 -m json.tool plugins.json >/dev/null
  • python3 -m json.tool .agents/plugins/marketplace.json >/dev/null
  • python3 -m py_compile scripts/generate_plugins_json.py scripts/validate-plugin-pr.py scripts/check-alphabetical.py
  • git diff --cached --name-only --diff-filter=ACMRTUXB -z | xargs -0r detect-secrets-hook --

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the 'Staff Engineer Mode' plugin, which provides structured, staff-level engineering guidance for AI coding agents across domains like architecture, reliability, and security. The changes include updating the marketplace metadata, README, and adding a comprehensive library of specialist guidance files. A script update was also included to handle extra mirror paths for this plugin. Feedback was provided regarding a potential crash in the plugin generation script due to unsafe dictionary access for plugin metadata, which has been addressed with a specific code suggestion.

Comment on lines +223 to +224
for extra_path in EXTRA_MIRROR_PATHS.get(f"{plugin['owner']}/{plugin['repo']}", ()):
add_recursive_selection(selected, all_names, plugin_root, extra_path)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The code accesses plugin['owner'] and plugin['repo'] directly. However, based on the plugins.json diff, existing plugin entries (like 'Stark' or 'Spec-Driven Development') do not contain these keys. This will cause a KeyError and crash the script when processing those plugins. It is safer to use .get() to handle cases where these keys are missing.

Suggested change
for extra_path in EXTRA_MIRROR_PATHS.get(f"{plugin['owner']}/{plugin['repo']}", ()):
add_recursive_selection(selected, all_names, plugin_root, extra_path)
plugin_id = f"{plugin.get('owner', '')}/{plugin.get('repo', '')}"
for extra_path in EXTRA_MIRROR_PATHS.get(plugin_id, ()):
add_recursive_selection(selected, all_names, plugin_root, extra_path)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked this against the generator path. collect_selected_paths() receives plugin objects from parse_plugins(), not records read back from generated plugins.json. parse_plugins() sets both owner and repo for every parsed README entry, and a local check returned plugins=83 missing_owner_or_repo=0.

The direct indexing is intentional here: missing owner or repo would mean the parser produced an invalid plugin object, and using .get() would silently skip required extra mirror paths instead of surfacing that invariant failure. No code change.

Comment thread README.md
- [Secret Guard](./plugins/mturac/secret-guard) - Pre-commit secret scanner using pattern and entropy detection.
- [Session Orchestrator](https://github.com/Kanevry/session-orchestrator) - Session orchestration for Claude Code, Codex, and Cursor IDE — structured planning, wave-based execution, VCS integration (GitLab + GitHub), quality gates, and clean session close-out with issue tracking.
- [Spec-Driven Development](https://github.com/Habib0x0/spec-driven-plugin) - Three-phase Requirements → Design → Tasks workflow for Claude Code and Codex — EARS notation acceptance criteria, autonomous execution loop, cross-spec dependencies, and post-implementation acceptance testing.
- [Staff Engineer Mode](https://github.com/sirmarkz/staff-engineer-mode) - Routes engineering design, delivery, reliability, security, operations, and maintenance prompts to focused staff-level specialist guidance for AI coding agents.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: README entries are not in alphabetical order — "Staff Engineer Mode" should appear before "Spec-Driven Development"

The check-alphabetical.py script would catch this failure.

Correct order in the "Development & Workflow" subsection:

  • [Session Orchestrator]
  • [Staff Engineer Mode] ← should be here
  • [Spec-Driven Development]
  • [Standup Generator]
  • [Stark]

The issue is that ‘staff engineer mode’ < ‘spec-driven development’ in case-insensitive alphabetical order (character 4: ‘f’ < ‘p’). Currently the new entry is inserted after Spec-Driven (line 158), which breaks the list’s expected sort order.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Checked against the repository checker and a case-insensitive sort. The current README order is correct: Spec-Driven Development sorts before Staff Engineer Mode because spec... comes before staff... (p < t).

Verification:

  • python3 scripts/check-alphabetical.py README.md passes with Development & Workflow at 51 items.
  • printf "%s\\n" "Spec-Driven Development" "Staff Engineer Mode" | sort -f outputs Spec-Driven Development first.

No README move.

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot Bot commented May 21, 2026

Code Review Summary

Status: 1 Issue Found | Recommendation: Address before merge

Overview

Severity Count
SUGGESTION 1
Issue Details (click to expand)

SUGGESTION

File Line Issue
README.md 159 "Staff Engineer Mode" is inserted after "Spec-Driven Development" but violates alphabetical ordering — it should precede Spec-Driven Development. The repository's check-alphabetical.py would surface this failure. In case-insensitive sort order "staff engineer mode" < "spec-driven development" (character 4: 'f' < 'p').

Correct order needed in the Development & Workflow section:

- [Session Orchestrator]
- [Staff Engineer Mode] ← move to here
- [Spec-Driven Development]
- [Standup Generator]
- [Stark]
Files Reviewed (5 changed, many new)
  • README.md1 issue (alphabetical ordering)
  • plugins.json — no issues (correct alphabetical order of new entry at line 303)
  • .agents/plugins/marketplace.json — no issues (correct alphabetical order of new entry at line 434)
  • scripts/generate_plugins_json.py — no issues (EXTRA_MIRROR_PATHS dict, collect_selected_paths signature + call-site, all correct)
  • plugins/sirmarkz/staff-engineer-mode/.codex-plugin/plugin.json — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/staff-engineer-mode/SKILL.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/staff-engineer-mode/references/router-eval-set.yaml — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/staff-engineer-mode/references/router-phase-eval-set.yaml — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/staff-engineer-mode/references/routing-matrix.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/_shared/references/source-index.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/_shared/references/synthesis-matrix.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/_shared/references/skill-contract.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/skills/_shared/assets/templates/* (17 files) — no issues
  • plugins/sirmarkz/staff-engineer-mode/specialists/* (48 coordinator files) — no issues
  • plugins/sirmarkz/staff-engineer-mode/.codexignore — no issues
  • plugins/sirmarkz/staff-engineer-mode/LICENSE — no issues
  • plugins/sirmarkz/staff-engineer-mode/README.md — no issues
  • plugins/sirmarkz/staff-engineer-mode/package.json — no issues
  • plugins/sirmarkz/staff-engineer-mode/assets/icon.svg — no issues

Reviewed by nemotron-3-super-120b-a12b-20230311:free · 149,526 tokens

@sirmarkz
Copy link
Copy Markdown
Author

Review bot feedback checked.

No code changes from the bot comments:

  • README ordering: current order is correct for the repo checker. python3 scripts/check-alphabetical.py README.md passes with Development & Workflow at 51 items. Spec-Driven Development sorts before Staff Engineer Mode.
  • Generator metadata access: collect_selected_paths() receives plugin dicts produced by parse_plugins(), and parse_plugins() sets owner and repo for every parsed entry. Local check: plugins=83 missing_owner_or_repo=0. Keeping direct indexing preserves the invariant instead of silently skipping extra mirror paths.

Also re-ran python3 scripts/validate-plugin-pr.py --base-ref origin/main; the Staff Engineer Mode bundle passes validation.

@sirmarkz
Copy link
Copy Markdown
Author

Refreshed the Staff Engineer Mode SVG icon.

What changed:

  • Replaced the shield/compass badge with a simpler routing-hub mark that reads better at small sizes.
  • Updated both the source plugin and the mirrored catalog bundle so they match.

Validation:

  • SVG parses as XML.
  • Render smoke test to 64x64 PNG succeeds.
  • Icon is 919 bytes, under the 50KB limit.
  • python3 scripts/validate-plugin-pr.py --base-ref origin/main passes.

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