Follow-up to PR #769 (6 new language files) and PR #772 (analyzer
wiring). Both PRs updated SKILL.md but left every derivative doc
surface stale. This PR closes the doc-sync gap.
Changed
- engineering-team/skills/code-reviewer/README.md
- Line 3 (one-liner): 9 -> 15 named languages, matching SKILL.md
- Line 90 (per-language guide list): 7 -> 13 file slugs
- docs/skills/engineering-team/code-reviewer.md (MkDocs page)
- Frontmatter description: 9 -> 15 languages
- File-tree block: 6 new languages/*.md rows
- Dispatch table: 6 new extension -> file rows
- --language valid-values comment: 8 -> 14 choices
Cross-platform mirrors
- .gemini/skills-index.json: regenerated via sync-gemini-skills.py
(diff is the single code-reviewer description; gemini script
discovered no other drift)
- .vibe/skills/claude-skills/skills-index.json: regenerated via
sync-vibe-skills.py with --target .vibe/skills (1 unrelated new
entry: workflow-builder; full regen was the path of least friction
for vibe)
- .hermes/skills/claude-skills/skills-index.json: hand-patched only
the code-reviewer entry. Full sync-hermes regeneration would have
bundled 33 new-skill entries (305 -> 338) accumulated from prior
PRs that never re-ran the script. That mirror-drift cleanup is a
separate concern -- left for its own PR.
- .codex/skills-index.json: was already current (the recurring
automated "chore: sync codex skills symlinks [automated]" commit
keeps it fresh between PRs).
CHANGELOG.md
- New [Unreleased] section above the existing Mistral Vibe block
documenting PR #769 (language coverage 7 -> 13), PR #772
(deterministic analyzer wiring), and this PR (doc sync).
Why hand-patched hermes (instead of script regen): the script
regenerates the entire index from current repo state, which surfaces
accumulated drift unrelated to code-reviewer (workflow-builder,
claude-coach, andreessen, handoff, business-operations, commercial,
compliance-os, research-ops -- 33 entries total). Bundling that with
a code-reviewer doc-sync PR would have muddied scope. Hand-patching
keeps this PR focused; a follow-up PR can sync-hermes properly.
https://claude.ai/code/session_01SnXMhpyuAwrws26Wy4fizz
PR #769 added language-rule files for C, C++, Rust, Ruby, PHP, and
Dart/Flutter, and updated SKILL.md's dispatch table + the --language
valid-values comment. But scripts/code_quality_checker.py was left
unchanged, so the deterministic analyzer silently skipped any file in
those 6 languages — the dispatch table promised coverage the script
didn't deliver.
Closes that gap by extending three structures in code_quality_checker.py:
- LANGUAGE_EXTENSIONS: 6 new entries matching SKILL.md exactly
(c declared before cpp so `.h` resolves to C per the dispatch table)
- find_functions patterns: language-aware function regexes
- find_classes patterns + nested method_patterns: type-defs and
method counting for class-like constructs (struct/enum/trait/union
for Rust; class/module for Ruby; class/interface/trait/enum for PHP;
class/mixin/enum/extension with Dart 3 modifier prefixes; struct for
C; class/struct for C++)
The function regexes for C and C++ require a trailing `{` so prototypes
and call sites aren't misclassified as definitions, and exclude
control-flow keywords (if/while/for/switch/return/sizeof) by negative
lookahead. This matches the discipline already used for the Java and C#
patterns (require modifier keywords).
Verification
- python3 scripts/code_quality_checker.py --help → all 14 languages
now appear as --language choices.
- Smoke-tested with a minimal sample per new language; each correctly
detects language, counts functions and classes, and produces a
quality score (no "Unsupported file type" errors).
- Regression: all 4 bundled fixtures (csharp/java × smells/clean)
still match their committed expected_outputs/*.json byte-for-byte.
Not in this PR (Phase 2 of the audit, separate PRs):
- Language-specific check_<name>_specific_smells detectors. Only C#
and Java have these today; the audit flagged C/C++/Rust as the
next-highest-leverage additions (memory safety, unsafe block
discipline, smart pointer ownership).
- Asset fixtures + expected_outputs JSON for the 6 new languages as
regression guards.
- Modernity / version-anchor sweep on the language markdown files.
https://claude.ai/code/session_01SnXMhpyuAwrws26Wy4fizz
Generate GitHub Pages for the workflow-builder skill, its cs-workflow-architect
agent, and the /cs:workflow-build command (via generate-docs.py), and wire all
three into mkdocs.yml nav (Engineering - POWERFUL, Agents, Commands sections).
Updated section index pages. Build verified clean (551 pages).
Aggregate skill counts unchanged — workflow-builder was already included in
dev's 338-skill / engineering-advanced-78 header.
https://claude.ai/code/session_01Q1kXbgMRodzhdTpgbCqVgx
Adds a concise workflow-builder reference to the top-level and metadata
descriptions alongside the research-ops headline. Builds on dev's accurate
338-skill / 16-domain v2.9.0 header (no version or count changes).
https://claude.ai/code/session_01Q1kXbgMRodzhdTpgbCqVgx
The top-level marketplace.json header still read v2.8.0 / 329 skills. Bump to
the current 2.9.0 release and update both descriptions to reflect the added
workflow-builder skill (engineering advanced 76 -> 77, total 329 -> 330).
Per-plugin version fields are unchanged (they track independent semver).
https://claude.ai/code/session_01Q1kXbgMRodzhdTpgbCqVgx
PR #756 normalized most marketplace versions to 2.9.0, but 20 newer
plugins (added after the normalization pass) remained on their own
versions on both marketplace.json and their plugin.json. Bump them all
to 2.9.0 so the registry advertises one unified release version, with
marketplace.json and every plugin.json fully in sync (62/62 at 2.9.0).
https://claude.ai/code/session_01JGwZR83iSg59EAtpTSCBjH
New engineering/workflow-builder plugin: an intake-first skill that designs
and writes deterministic multi-agent workflow .js files for Claude Code's
Workflow tool (CLAUDE_CODE_WORKFLOWS=1, /workflows).
- Opens every session with the intake question set; when the user is vague,
a stdlib recommendation engine infers and proposes a topology with rationale
instead of stalling or interrogating in a loop.
- 3 stdlib Python tools: workflow_intake.py (topology + model + budget +
rationale recommender), validate_workflow.py (.js linter enforcing
pure-literal-meta / no-non-determinism / no-Node-APIs / parallel-thunk /
guarded-loop rules), scaffold_workflow.py (5-topology starter generator).
- 3 references (7-8 sources each): API surface, orchestration patterns,
decision + intake guide. 3 templates + a runnable PR-triage example.
- cs-workflow-architect agent + /cs:workflow-build command.
- Registered in marketplace.json (61 -> 62 plugins).
Conceptually inspired by Ray Amjad's claude-code-workflow-creator; all content
written fresh from the publicly-documented Workflow tool API.
Gates: description PASS, structure PASS (78 lines), review-checklist WARN
(skill vs Workflow tool terminology — official feature name), complexity 85/100.
All scripts pass --help/--sample; all shipped .js validate PASS.
https://claude.ai/code/session_01Q1kXbgMRodzhdTpgbCqVgx
marketplace.json had outdated version numbers for 42 of 62 plugins,
causing Claude Code to potentially serve stale cached artifacts
during installation. For example, engineering-advanced-skills showed
2.4.3 in the marketplace but the actual plugin.json has 2.9.0 (with
the skills path fix from PR #715).
Synced all marketplace entry versions to match their corresponding
.claude-plugin/plugin.json versions.
Ran the /update-docs post-creation pipeline across the whole repo.
Docs site (MkDocs):
- generate-docs.py now covers 16 domains (added research-ops at order 15
and compliance-os at order 16 + its embedded-agent mapping). Regenerated
500 pages (328 skills + 89 agents + 83 commands); build passes.
- mkdocs.yml: site_description refreshed to 338/16/51+/87+ + v2.9.0; added
the Research Operations and Compliance OS skills nav sections, the
cs-research-ops-orchestrator + 8 compliance-os agents, and the 6
research-ops command entries.
- docs/index.md: title, description, hero, the five "What's Inside" cards
(338 skills, 51+ agents, 533 tools, 62 plugins, 87+ commands), corrected
six domain-card counts, and added a Research Operations domain card.
- docs/getting-started.md: description, Vibe count, FAQ, bundles table
(six corrected counts) + a research-ops bundle row.
Cross-platform sync (all four scripts gained a compliance-os entry):
- Codex: compliance-os 9 skills symlinked + index; unrelated run/status/
review symlink churn reverted to keep the diff focused.
- Gemini: 9 compliance-os SKILL.md mirrors + index.
- Vibe (repo target): 9 compliance-os symlinks + index.
- Hermes/Vibe domain lists updated for future syncs.
compliance-os was a tracked 9-skill domain previously absent from the docs
site and the codex/gemini/vibe indices; it is now fully wired in.
The MkDocs `site/` build output is gitignored and excluded.
https://claude.ai/code/session_01PUNmQVE4WYvcrzpq2anC3D
Connects each research-ops sub-skill to engineering/autoresearch-agent and adds
per-skill onboarding with a customization approach that the tools actually consume.
Each sub-skill (clinical-research, research-finance, market-research,
product-research) now ships three integration scripts:
- onboard.py — its own onboarding questionnaire; interactive or
--defaults / --set key=value / --reset / --scope; writes
~/.config/research-ops/<skill>.json (global) or
./.research-ops/<skill>.json (project).
- config_loader.py — loads that config (project > global > defaults;
RESEARCH_OPS_NO_CONFIG=1 bypass). Every scoring tool now
reads it so saved answers change behavior: default profile,
thresholds (alpha/power/dropout, F&A rate, runway, confidence,
MoE, insight source-threshold), and named owners printed on
clinical/finance outputs. CLI flags always override.
- ar_evaluator.py — an isolated, OPT-IN ground-truth evaluator bridging to
autoresearch. The loop edits the skill's input file and the
evaluator (never edited) scores it: clinical
feasibility_composite (higher), finance runway_months (higher),
market tam_divergence (lower), product validated_insights
(higher). No cross-skill coupling; invoked only on explicit
user request.
SKILL.md (each), the orchestrator, the agent, per-skill commands, and the domain
CLAUDE.md document the onboarding + opt-in autoresearch handoff. plugin.json /
marketplace describe 24 tools (12 analysis + 12 integration).
Builds the cross-platform plugins: codex symlinks + gemini SKILL.md mirrors +
vibe symlinks materialized for all 5 research-ops skills; indices regenerated.
Root CLAUDE.md scope/highlights updated.
https://claude.ai/code/session_01PUNmQVE4WYvcrzpq2anC3D
Builds on @mitnick2012's universal+per-language restructure (PR #742).
- Add Java as a first-class deterministic language in code_quality_checker.py
(LANGUAGE_EXTENSIONS + function/class/method patterns + check_java_specific_smells),
so the documented `--language java` command works instead of erroring on an
invalid choice. Add Java debug + @SuppressWarnings signals to pr_analyzer.py.
- Add Java regression fixtures (sample_java_smells/clean.java) with committed
expected_outputs JSON, mirroring the existing C# fixtures.
- Delete references/{code_review_checklist,coding_standards,common_antipatterns}.md,
now duplicated by rules/universal.md + languages/*.md; repoint README and the
C# clean fixture header at the new structure.
- Document the optional analyzer-wiring + fixture steps in the "Adding a New
Language" guide and restore a Regression Fixtures section in SKILL.md.
https://claude.ai/code/session_01DjuELpoFdFbFscr3kAatni
Both ./engineering/handoff and ./productivity/handoff were registered as
"handoff" in marketplace.json. Duplicate names pass the local CLI but fail
Claude.ai marketplace sync (used by Cowork), causing "Failed to add
marketplace". Renamed to handoff-engineering and handoff-productivity.
https://claude.ai/code/session_01DjuELpoFdFbFscr3kAatni
- Extract commun languages rules in a separate rules/universal.md containing all cross-language rules in one place
- Move language-specific rules inline into each languages/*.md file,
organised into consistent sections: Security / Async / Resource
Management / Exception Handling / Performance / Idioms
- Add Java support: languages/java.md with full section coverage
- Every review now requires exactly 2 file reads: universal.md +
one language file
- Add "Adding a new language" guide to SKILL.md: one file to create,
nothing else changes
The previous vibe sync was run with --domain productivity, which rewrote
.vibe/skills/claude-skills/skills-index.json to contain only the 6 productivity
skills, dropping the other ~317. The symlink tree was unaffected (all 14 domain
dirs intact) — only the index JSON was clobbered. Re-running the full sync
restores total_skills 6 -> 323 across all 14 domains. andreessen present.
https://claude.ai/code/session_01SF6MzfjHurZMt5JUFET9h3