Commit graph

2 commits

Author SHA1 Message Date
Claude
5954dfcce1
cleanup(engineering): address remaining 7 polish items from PR #718 bot review
Bundle of low-medium-severity follow-ups that were deferred when PR #720
landed the 3 blocking bugs. None of these silently break correctness —
they're discoverability, consistency, and convention gaps.

Bugs / code-quality:

1. fullstack_decision_engine.py: asymmetric cadence matching
   `inputs.cadence in target or target in inputs.cadence` produced
   asymmetric results — "per-pr" matched "per-pr-with-gates" but not
   vice versa. Profile cadences are intentional alternatives joined
   by "-or-" (e.g. "weekly-or-on-demand" → {weekly, on-demand}); now
   parsed explicitly with "-with-..." modifier suffixes stripped.

   Verified:
     cadence=per-pr → matches per-pr, per-pr-with-gates, daily-or-per-pr
     cadence=daily  → matches daily-or-per-pr (only)
     cadence=on-demand → matches weekly-or-on-demand

2. fullstack_decision_engine.py: rename weight_total/weight_matched
   to w_total/w_matched. Backend and frontend engines already use the
   short form; this aligns the three files as a family.

3. sync-gemini-skills.py: 3-way name collision in dedup logic
   The naive `if name in seen_names: name = parent-name` handled one
   collision but not two. Three "status" skills under "skills" parent
   dirs produced two entries both named "skills-status". Now suffixes
   with -2, -3, ... so each entry has a unique index name. Eliminates
   the duplicate-name ambiguity surfaced when checking PR #713.

Discoverability:

4. senior-fullstack/SKILL.md: surface fullstack_decision_engine.py in
   the labeled "Tools" section at the top. Previously only mentioned
   inline in the body (5 references buried in the Stack Decision Matrix
   section); not findable when scanning the SKILL.md.

Conventions / v2.8.0 compliance:

5. commands/cs-{fullstack,backend,frontend}-review.md: add explicit
   "## Forcing-question library" section header per the v2.8.0
   convention. Each lists the 7 questions inline with a pointer to
   the canonical reference file.

6. agents/engineering/cs-{fullstack,backend,frontend}-engineer.md:
   alphabetize the specialist list in the description field (annotated
   that workflow body order remains dependency-driven). Makes the
   three agent descriptions consistent as a family.

7. agents/engineering/cs-{backend,frontend}-engineer.md: promote the
   "Cross-agent invocation" content out of Workflow 3 into a dedicated
   "## When invoked as fork target" section with an explicit question-
   skip table per parent agent (cs-fullstack-engineer, cs-cto-advisor,
   cs-vpe-advisor, cs-ciso-advisor for backend; cs-fullstack-engineer,
   cs-content-creator, cs-product-manager for frontend). Closes the
   cross-agent contract gap the bot flagged.

Not changed:

- CLAUDE.md plugin-schema section (already corrected in #715; bot's
  "stale text" claim was incorrect — it was reading the cumulative diff)
- Workflow body specialist order (intentional dependency order; would
  break the SLO-first → API → DB → migration → observability sequence)

Verification:
- All 3 decision engines: --sample → exit 0
- Cadence matching: 3 test cases pass cleanly
- check_plugin_json.py --all → 0 FAIL, 0 WARN, 69 OK
- sync-gemini-skills.py → 392 unique names (was 391 unique / 1 dupe)
2026-05-21 13:47:08 +00:00
Claude
2c5a793128
feat(engineering): apply karpathy-coder + Matt Pocock to fullstack/frontend/backend
Audit findings:
- senior-fullstack / senior-frontend / senior-backend SKILL.md files were
  generic role catalogs with no opinionated workflow, no customization
  surface, and no cross-agent invocation contract.
- A 4-person SaaS startup and a 200-engineer enterprise read identical
  recommendations.
- Other agents/skills had no typed surface to orchestrate fullstack /
  frontend / backend lenses.

Per-skill additions (21 new files: 7 x 3 skills):
- scripts/<role>_decision_engine.py - stdlib-only deterministic profile
  picker. Refuses to recommend without Karpathy-#1 core assumptions.
  Surfaces kill criteria. Names human approver chain (never auto-approves).
- profiles/*.json x 4 per skill (12 total) - JSON customization surface.
  Users copy one to <your-org>.json to override defaults.
- references/forcing_questions.md - 7 Matt Pocock forcing questions per
  skill (21 total) with recommended answer + canon citation + kill criterion.
- references/composition_map.md - explicit routing into POWERFUL-tier
  specialists (api-design-reviewer, database-designer, slo-architect,
  performance-profiler, a11y-audit, epic-design, apple-hig-expert, etc.).

Three orchestrator agents (context: fork):
- agents/engineering/cs-fullstack-engineer.md
- agents/engineering/cs-frontend-engineer.md
- agents/engineering/cs-backend-engineer.md
Invokable by other agents via Agent(subagent_type="cs-<role>-engineer", ...).

Four slash commands:
- /cs:fullstack-review, /cs:frontend-review, /cs:backend-review
- /cs:engineer-grill - cross-role 21-question forcing-question runner

Augmented SKILL.md files (additive only - Karpathy #3 surgical):
Each gained 5 new sections: Assumptions & Verifiable Success Criteria
(Karpathy #1+#4), Customization profiles, Composition map, Forcing-question
library, Invocation from other agents and skills.

Verification:
- 12/12 profile JSON files parse cleanly
- 3/3 decision engines pass --help and --sample, exit 0
- 3/3 cs-* agents have valid YAML + context: fork
- 3/3 agent paths resolve from agents/engineering/
- 3/3 commands reference the correct cs-* agent
- 69/69 plugin.json files pass check_plugin_json.py
- Existing SKILL.md content unchanged (additive edits only)

Versions: engineering-team plugin 2.2.3 -> 2.8.1; marketplace entry 2.8.1.

https://claude.ai/code/session_01UyWs4rKccdxUWFcWi6Y8Ly
2026-05-20 07:24:21 +00:00