Commit graph

28 commits

Author SHA1 Message Date
Alireza Rezvani
1f501dd6f3
Merge pull request #938 from benrfairless/fix/stale-model-references
fix(models): remove retired model IDs and stale pricing, flip G7 blocking
2026-08-21 10:43:47 +02:00
Claude
7405298b4b
fix: resolve the actionable reported issues (#954, #949, #933, #931, #969, #968, #924, #885)
- #954: strip non-spec source/attribution keys from all 39 plugin.json
  manifests so Claude Code's validator accepts them; metadata preserved in
  new .claude-plugin/authoring-notes.json sidecars; check_plugin_json.py now
  hard-fails manifests carrying those keys and sanity-checks the sidecar;
  CLAUDE.md ClawHub schema section updated to the new rule.
- #949: move the c-level-agents plugin out of c-level-advisor/ to a
  top-level directory so the two marketplace sources no longer overlap;
  updated marketplace.json source, homepage, descriptions, all
  cross-references, docs, harness manifest, mirror-tree symlinks/indexes,
  and rebased the moved files' relative links; domain counters trued up
  (18 -> 19 domains).
- #933: replace dead links to the gitignored maintainer-local megaprompts/
  tree with annotated plain-text references (44 files: SKILL.md, READMEs,
  agents, commands).
- #931: DynamoDB on-demand pricing updated to post-Nov-2024 rates
  ($0.625/M writes, $0.125/M strongly consistent reads).
- #969: skill_security_auditor.py and the three dossier scripts reconfigure
  stdout/stderr to UTF-8 (errors=replace) so legacy Windows codepages no
  longer crash at print time; PYTHONUTF8=1 documented.
- #968: Windows Notes section in INSTALLATION.md + README pointer for the
  core.symlinks mirror-tree checkout caveat.
- #924/#885 residuals: hook commands quote "${CLAUDE_PLUGIN_ROOT}" paths in
  all plugin hooks.json/settings.json (space-safe roots); removed the stale
  pre-rename status/review mirror symlinks and index entries left over from
  the memory-status/memory-review rename.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qgc6RYXWJPr5oW9DHU7zR4
2026-08-21 05:47:37 +00:00
Ben Fairless
66ea9621dd
fix(models): remove retired model IDs and stale pricing, flip G7 blocking
Clears every reference the new G7 lint flags, then makes it blocking so the
class cannot drift back. audit/engineering-agentic-2026-07 marked the
senior-ml-engineer half of this STILL-OPEN.

Deleted rather than updated:

  - agent-designer/agent_evaluator.py's _define_cost_benchmarks() held
    per-token prices for gpt-4, gpt-3.5-turbo and claude-3 at 2024 rates. The
    result was assigned to self.cost_benchmarks and never read by anything, so
    the method is gone. Cost analysis uses the cost_usd the caller supplies per
    execution log, which is the only figure that can be accurate

Made model-agnostic, following the precedent already set by
senior-prompt-engineer/scripts/prompt_optimizer.py's --price-per-mtok:

  - senior-ml-engineer SKILL.md and llm_integration_guide.md drop both 2024
    price tables and the context-window table (which claimed GPT-4 = 8,192).
    calculate_cost() takes rates as parameters; count_tokens() takes an
    encoding name, since encodings outlive model IDs and
    encoding_for_model() raises KeyError on anything unmapped
  - OpenAIProvider loses its default model, so the caller must pass one
  - llm-cost-optimizer's routing table names tiers, not models

Pinned to current IDs where an example genuinely needs one: SKILL_PIPELINE.md
(claude-opus-4-6 -> claude-opus-5), prompt-governance (claude-sonnet-4-5 ->
claude-sonnet-5), agent-designer README. Both dual-publish copies of the CAIO
pricing move together, so G4 stays green.

TEAM_STRUCTURE_GUIDE.md documented `prompt_optimizer.py --model gpt-4 --task
classification`. That contract no longer exists: there is no --task flag and
`prompt` is a required positional. Replaced with a runnable invocation.

Four references stay, with reasons in the allowlist: two litreview examples
where the retired model is the subject of the literature being reviewed, one
dated Computer Use citation, and the embedding benchmark already labelled a
2024 snapshot.

Assisted-by: Claude Code:claude-opus-5
2026-08-03 08:55:36 +08:00
Claude
dcd28e3ae9
docs(arquiteto-de-empresa): keep Brazilian MEI term with English gloss in example (PR #900 review)
The demo company is explicitly Brazil-set (Jurisdiction: Brazil), so
preserving the local legal-entity term is more faithful than genericizing
it: 'MEI — Microempreendedor Individual, sole-proprietor entity — to be
defined'. Mirror re-synced; example lint PASS; counter (G3) + dual-publish
gates exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 07:10:23 +00:00
Claude
d0c78bd1d3
docs(arquiteto-de-empresa): PR #900 review — clean codex diff + restore LGPD citation + fresh example next-step
- .codex/skills-index.json: reset to dev and re-applied ONLY the two
  arquiteto description changes via a JSON round-trip, dropping the
  unrelated review/run/status entry reorderings the full regen had pulled
  in (diff is now exactly 2 lines, no ambiguous-name churn).
- phase_playbook.md: the data-protection question kept the specific
  citation instead of a bare generic — 'data-protection law — e.g. GDPR /
  LGPD / CCPA, per jurisdiction' (jurisdiction-aware, not Brazil-only).
- exemplo-bundle/index.md: suggested-next-step no longer says 'finish
  problema-solucao.md' (that stub now has content) — points at the real
  remaining PHASE-1 gap (manifesto.md) instead.

Mirror identical; example-bundle lint PASS; dual-publish/plugin/counter
gates exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 07:01:01 +00:00
Claude
2324118f62
style(arquiteto-de-empresa): tidy index_generator docstring alignment (PR #900 review)
Normalize the usage-line comment gap left misaligned by the earlier
./minha-empresa -> ./my-company rename (path was 3 chars longer).
Cosmetic docstring-only; no behavior change. Mirror re-synced identical.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:55:06 +00:00
Claude
a61d16fb0e
docs(arquiteto-de-empresa): translate last two residual PT strings (PR #900 review)
Final review sweep caught two non-accented residuals a prose-grep misses:
- scaffold_bundle.py slugify() fallback "empresa" -> "company" (a code
  default, not a preserved slug — fires only on all-punctuation input)
- example destination path ./minha-empresa -> ./my-company in SKILL.md
  and the 3 scripts' usage docstrings, so the translated display name
  'My Company' no longer maps to a Portuguese folder in the same line

Mirror re-synced identical; scaffold --sample JSON ok; example-bundle
lint PASS; py_compile clean; dual-publish exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:43:04 +00:00
Claude
f1bee62561
docs(arquiteto-de-empresa): true up stub tags + company name (PR #900 review)
Fixes two cosmetic inconsistencies I introduced in the problema-solucao.md
example stub:
- tags: [fundacao, problema-solucao] -> [foundation, problem-solution]
  (was residual Portuguese metadata the prose-grep sweep missed)
- 'Café Aurora' -> 'Aurora Café' to match the 7 other uses across the
  example bundle's sibling files

Mirror re-synced; example-bundle lint PASS; dual-publish exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:37:08 +00:00
Claude
93e409699f
docs(arquiteto-de-empresa): example bundle demonstrates a resolving cross-link (PR #900 review)
Replaces the inline-code workaround for the example's dangling link with a
real stub concept: adds assets/exemplo-bundle/00-fundacao/problema-solucao.md
(type: Problem-Solution + [ASSUMPTION]) and restores the markdown link from
identidade.md so the example shows the OKF link graph it is meant to teach
(okf_conformance Rule 3), instead of merely silencing the linter. Folder
index lists the new concept. Mirror re-synced; example-bundle lint PASS
(0 problems); dual-publish exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:32:24 +00:00
Claude
daa2dcba20
i18n(c-level): translate remaining 'versao' frontmatter key to 'version'
Addresses PR #900 review nit — the versao: frontmatter key stayed
Portuguese in 4 template/example/reference files. No script keys on it
(parse_frontmatter is a generic grabber), so it's a safe cosmetic rename.
Mirror re-synced; example-bundle lint still PASS; dual-publish exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:27:23 +00:00
Claude
ecf5f3223c
i18n(c-level): translate arquiteto-de-empresa skill to English
Translates the entire arquiteto-de-empresa (Company Architect) skill from
Brazilian Portuguese to professional English across all 18 files in both
dual-published locations:
- SKILL.md, README, cs-arquiteto agent + command, plugin.json description
- 3 references (okf_conformance, type_vocabulary, phase_playbook)
- 7 assets (templates + exemplo-bundle example)
- 3 stdlib scripts (scaffold_bundle, okf_linter, index_generator):
  docstrings, argparse help, printed strings, finding-rule slugs

Consistency preserved end-to-end:
- Controlled OKF  vocabulary translated (Fundação->Foundation, etc.)
  and kept identical across type_vocabulary.md, okf_linter VALID_TYPES,
  scaffold_bundle FOLDERS/DASHBOARD labels, and the example-bundle
  frontmatter, so the linter still passes.
- Status enum rascunho/em-revisao/aprovado -> draft/in-review/approved.
- [SUPOSIÇÃO] -> [ASSUMPTION]; language: pt-BR -> en.

Identifiers intentionally preserved (published marketplace slug + tool
contract): skill slug arquiteto-de-empresa, cs-arquiteto agent/command,
phase-dir slugs (00-fundacao..11-governanca), concept filename slugs.
A slug rename to English is a separate reversible decision.

Also fixes a pre-existing broken link in the example bundle (identidade.md
pointed at a nonexistent problema-solucao.md — the original pt-BR bundle
also failed the linter there) and trues up two stale README badges
(agents 97->99, commands 103->109) that were drifting on dev.

Validation: okf_linter --sample PASS, example-bundle lint PASS (0 errors),
py_compile clean, all 3 scripts --help ok, dual-publish mirror identical,
plugin/paths/counters/G9 gates all exit 0.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-07-06 06:20:33 +00:00
LeoAlvesia
c1bcd1681a feat(c-level): add arquiteto-de-empresa skill (OKF bundle builder, PT-BR)
Constrói uma empresa do zero como bundle OKF (Open Knowledge Format):
árvore de .md com frontmatter type, grafo de links, index.md/log.md
reservados. Conduz entrevista de 12 fases, uma de cada vez.

- SKILL.md (PT-BR, 94 linhas) + 3 referências (okf_conformance, type_vocabulary, phase_playbook)
- 3 ferramentas stdlib: scaffold_bundle, okf_linter, index_generator (passam --help/--sample)
- assets (templates + bundle de exemplo) + plugin.json + README + agente cs-arquiteto + comando /cs:arquiteto
- dual-published: standalone + cópia bundled em c-level-advisor/skills/ (sync_skill_bundles)
- marketplace.json + contadores CLAUDE.md/README.md atualizados (347 skills, 586 tools, 711 refs, 100 commands, 79 plugins)

Verificado: derive_counters --check PASS, structure 6/6, check_plugin_json OK,
mirror em sync, E2E OKF (scaffold->lint->index->relint) PASS. Description em
WARN apenas pelo gatilho em ingles (skill e PT-BR puro, por escolha).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 18:23:34 -03:00
Claude
c339095f9d
style(tooling): PR #841 round-7 — hoist argparse import to module level
Resolves the import-placement asymmetry flagged across review rounds by
moving the remaining inside-guard import (argparse) up to join sys at the
file-level import block.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:44:17 +00:00
Claude
351e8b2f89
fix(tooling): PR #841 round-6 review — error handling on team_scaling file path
Adds FileNotFoundError / JSONDecodeError / missing-key handling to
team_scaling_calculator's input_file path, matching the other five
sample-pattern tools (pre-existing gap, surfaced by review).

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:18:31 +00:00
Claude
a576e094fe
refactor(tooling): PR #841 round-5 review — hoist team_scaling sample fixture, canonical if/elif/else
Hoists the embedded defaults to SAMPLE_CURRENT_STATE / SAMPLE_GROWTH_TARGETS
module constants so the loading flow can use the same top-of-branch
if/elif/else shape as the other five tools without duplicating the fixture.
The silent default-to-sample when no input is given is pre-existing,
documented behavior (kept; noted in the constant's comment).

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:14:51 +00:00
Claude
19cc8e588c
refactor(tooling): PR #841 round-4 review — exit-code note in incident_triage help, unified if/else in team_scaling
- incident_triage.py: --sample help text now documents the intentional
  exit-2 SEV1 signal so &&-chained callers aren't surprised
- team_scaling_calculator.py: consolidate the split warn/load blocks into
  the single if/else pattern the other five tools use

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:12:02 +00:00
Claude
552b373bef
refactor(tooling): PR #841 round-3 review — uniform --sample precedence + warnings
- health_score_calculator + pipeline_analyzer: warn on stderr when --sample
  overrides a provided input (now consistent across all six tools)
- pmf_scorer: --sample checked before --input (matches the batch), with the
  same override warning
- pipeline_analyzer: comment the intentionally stale D-3 fixture deal
- contrast_checker: user-facing --sample help text

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:05:11 +00:00
Claude
0cc9ef05e5
refactor(tooling): PR #841 round-2 review — sys import to file top, incident_triage input-override warning
- team_scaling_calculator.py: move sys import to the file-level import block
  (was inline in the conditional); behavior unchanged
- incident_triage.py: warn on stderr when --sample overrides a provided
  --input, matching team_scaling_calculator's convention

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 16:02:14 +00:00
Claude
9c882fe50e
fix(tooling): address PR #841 review — pmf_scorer notice to stderr, team_scaling input-override warning
- pmf_scorer.py: the no-input fallback notice now goes to stderr, so a bare
  `pmf_scorer.py --json` emits parseable JSON on stdout
- team_scaling_calculator.py: warn on stderr when --sample overrides a
  provided input_file instead of silently discarding it

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 15:59:28 +00:00
Claude
21f8d18a60
feat(tooling): backport --sample to 6 more tools across 3 domains (#654)
Brings G9 JSON-output coverage from 19 to 25 tools (25/25 verified):

- business-growth: health_score_calculator (embedded 2-customer fixture),
  pipeline_analyzer (embedded 4-deal pipeline fixture)
- c-level-advisor: pmf_scorer (--sample flag for its existing sample_data(),
  suppressing the stdout notice that corrupted JSON piping),
  team_scaling_calculator (--sample flag for its embedded defaults)
- engineering-team: incident_triage (embedded synthetic ransomware event),
  contrast_checker (--sample as alias of the existing --demo)

Required-arg behavior unchanged when --sample is absent (still exits 2 with
a usage error). All gates green: G9 25/25, G8, dual-publish, path linter.

Together with the 5 #654-named tools, 4 JSON-honor fixes, and the pre-existing
sample-pattern tools, more than 20 tools now support the embedded-sample
convention — meeting #654's acceptance bar.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 15:56:18 +00:00
Claude
aecfb8e0bb
feat(skills): wave-3 optimization — domain overhauls per newgen audit
marketing: context-file unified on .claude/product-marketing-context.md;
ai-seo merged into aeo (2 new cited references, folder deleted); index +
marketing-ops routers rebuilt honestly; 24 orphan scripts wired with exact
CLIs; prompt-engineer-toolkit stub references rewritten with cited content;
Meta 20%-rule + GA4 terminology freshness; 5 zips + 3 planning docs removed

c-level-advisor: role registry 9->14 across all 6 routing surfaces; decision
memory unified on ~/.claude/decisions/{raw,approved}; onboarding schema
canonicalized; 12 phantom commands resolved; index repaired (33/37/68 real
counts); ma-playbook sourced + verification loop; 28 trigger descriptions

engineering(+team): agent-designer 279->76 lines and rag-architect 318->71
lines rebuilt around their tools (stale ada-002/pricing gone); release-manager
merged into changelog-generator (version_bumper + hotfix refs moved, crashing
release_planner dropped); 6 skills' orphan scripts wired; ms365 tools gained
real CLIs; 5 brochure skills de-filled; 4 unreferenced zips removed;
bundle counts trued (25->37, 23->32); 18 trigger descriptions

product/research/compliance/bizops: apple-hig-expert rebuilt around
hig_checker's real CLI with web-verified facts; notebooklm re-verified against
live product; 5 index skills converted to honest routers; research-summarizer
repaired with explicit lane statement; 8 over-1024 descriptions compressed;
9 sub-skills gained fenced CLI examples; GDPR one-month (Art. 12(3)) with
calendar-month deadline math; MDR PSUR table per Art. 86(1); 12 ra-qm zips
removed; 24 trigger descriptions

Verified: check_paths 0 findings; check_dual_publish 0 drifted; smoke 581/581;
check_plugin_json 77 OK; compileall rc=0; all descriptions <=1024 chars

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 03:58:41 +00:00
Claude
a088c8ba77
fix: phantom-path sweep — 888 unresolvable references to zero
A directory reorg added a skills/ path segment; hundreds of references never
followed. This sweep repoints every path-like reference in SKILL.md, agents,
commands, orchestration, and templates to verified on-disk targets:

- 30 root commands + 19 root agents: missing skills/ segment inserted
- 7 c-level persona agents: 17 hallucinated reference filenames substituted
  with the real files (e.g. okr_execution.md -> process_frameworks.md)
- 5 research skills: phantom scripts/office/validate.py step replaced with a
  runnable stdlib zip-integrity check
- email agents: skills frontmatter corrected to productivity/email
- orchestration/ORCHESTRATION.md + templates: stale paths fixed;
  agent-template now requires trigger phrasing in descriptions (root cause)
- 76 more files across engineering, c-level-advisor, compliance-os,
  research-ops, ra-qm, marketing, productivity; dual-publish pairs mirrored
- dead refs dropped/replaced where no target ever existed (REGISTRY.md,
  trend_analyzer.py, cursor-microinteractions.md)

New: scripts/check_paths.py linter (CI gate G1) + narrow allowlist for
teaching examples. Verified: 540 files scanned, 0 unresolvable.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-10 14:33:00 +00:00
Claude
034c9fdda0
feat(vpe-advisor): throughput-first VP of Engineering skill (v2.5.5)
Fifth decision-driven C-role skill in the founder-mode lineup (after GC, CDO,
CAIO, CCO). Throughput-first VPE covering 4 specific decisions distinct from
CTO:

  1. Are we delivering at the right throughput?  (DORA 4 metrics + bottleneck)
  2. How do we scale the eng hiring funnel?  (7-stage funnel + pipeline gap)
  3. What's our eng team structure?  (squad/tribe + manager-trigger)
  4. What's our production discipline?  (on-call, deployment, postmortems)

Critical distinction enforced: VPE is NOT a CTO skill.
- CTO owns 'what to build' (architecture, scaling cliffs, build-vs-buy)
- VPE owns 'how to ship it' (delivery, hiring, team structure, production)

Built under karpathy-coder discipline (5th consecutive PR):
- Assumptions surfaced upfront (CTO vs VPE distinction locked)
- Each tool/reference covers ONE decision; no overlap with engineering
  tactical skills
- Surgical scope; no edits to other c-level skills
- All 3 tools smoke-tested with embedded samples
- karpathy/complexity_checker: 0 findings on 3 new tools
- karpathy/diff_surgeon: 0 findings on staged diff
- check_plugin_json.py + sync_skill_bundles.py --check: both pass

3 stdlib Python tools with deterministic logic:

- delivery_throughput_analyzer.py - DORA 4 metrics (Deployment Frequency,
  Lead Time, MTTR, Change Failure Rate) with Elite/High/Medium/Low verdict
  per metric and overall. Cycle-time bottleneck ID with fixes per stage.
  Sample (Platform Squad, 30 days, 28 deploys) -> overall High; bottleneck
  = first_review_to_approval at 45.8% of cycle.
- eng_hiring_funnel_calculator.py - 7-stage funnel conversion with
  healthy/leaky verdict per stage. End-to-end conversion, required
  top-of-funnel volume for hiring target, weakest-stage fixes (sourcing,
  calibration, interview design, comp/close). Sample (Q2 2026, 4-hire
  target) -> 0.62% end-to-end, gap of 160 candidates, weakest =
  offer_to_accept at 60%.
- eng_team_structure_designer.py - Structure recommendation by headcount,
  squad sizing (5-9 IC range), manager-trigger, director-trigger,
  span-of-control. Sample (25 engineers, 22 ICs / 3 EMs / 1 CTO) -> 4-squad
  structure; no EM trigger; director trigger FIRES.

4 in-depth references each citing 5+ authoritative sources:

- delivery_throughput.md - Full DORA framework, 4 bottleneck patterns, what
  to fix first, anti-patterns. Cites Accelerate (Forsgren/Humble/Kim),
  Google State of DevOps, Phoenix Project, Reinertsen Flow, Humble
  Continuous Delivery.
- engineering_hiring_funnel.md - 7-stage funnel + benchmarks + leakage
  diagnosis + pipeline math + sourcing diversification + interview design.
  Cites LinkedIn Talent Insights, Levels.fyi+Pave, Lou Adler, Adler/Bock
  "Work Rules!", CMU/Booth research.
- eng_team_structure.md - Conway's Law + headcount-to-structure + span-of-
  control + EM vs tech lead + manager/director/VPE triggers + squad sizing
  + chapter discipline. Cites Kniberg "Scaling Agile @ Spotify" + 2020
  retrospective, Will Larson, Camille Fournier, Conway 1968, engineering
  blog corpus.
- production_discipline.md - On-call (6+ rotation), incidents (4-tier +
  blameless postmortems), deployment cadence, SLO discipline, 5-level
  maturity model. Cites Google SRE + SRE Workbook, Allspaw, PagerDuty IR,
  Charity Majors, Nora Jones, Mikey Dickerson.

cs-vpe-advisor agent: throughput-first operator. Voice: "What's your cycle
time, and where does the work spend most of its time waiting?" Trusts DORA
over vibe. Distinguishes "what to build" (CTO) from "how to ship it" (VPE).

/cs:vpe-review slash command: 6-question forcing interrogation (cycle time,
DORA verdict, hiring leakage, structure health, production maturity,
VPE-vs-CTO scope).

Dual-published from the start (per #624 pattern):
- Standalone at c-level-advisor/vpe-advisor/ with mirrored content
- New marketplace entry: vpe-advisor (category: leadership)
- Bundled mirror at c-level-advisor/skills/vpe-advisor/

Updates:
- c-level plugin.json: v2.5.4 -> v2.5.5 (33 skills, 13 cs-* agents)
- c-level-agents plugin.json: v1.4.0 -> v1.5.0 (13 agents, 21 commands)
- marketplace.json: bumped both c-level entries; new VPE standalone entry;
  +vp-engineering, vpe, dora, delivery-throughput, engineering-hiring,
  eng-team-structure, production-discipline keywords (38 -> 39 plugins)
- c-level CLAUDE.md: VPE row added; counts updated
- Root CLAUDE.md: 267->268 skills, 32->33 cs-* agents, 370->373 tools,
  502->506 references, 53->54 commands; v2.5.5 highlight section
- CHANGELOG.md: v2.5.5 entry with karpathy-discipline rationale

Carry-over (still not in scope): cs-general-counsel-advisor voice spec
missing from persona-voices.md (multi-PR carry-over); Phase 2 final
remainder = CCO-comms (Chief Communications Officer) with naming
disambiguation needed.

https://claude.ai/code/session_012WtZMm5NJHqkYoRqA9fHMN
2026-05-13 06:21:08 +00:00
Claude
c7a0fe865a
feat(chief-customer-officer-advisor): retention-obsessed CCO skill (v2.5.4)
Fourth decision-driven C-role skill in the founder-mode lineup (after GC,
CDO, CAIO). Opinionated CCO covering 4 specific decisions, not a generic
customer success survey:

  1. What's our retention architecture - is GRR vs NRR honest?
  2. How do we segment customers for differential investment?
  3. What's the CS team's coverage model - pooled vs named, when to switch?
  4. What CS role do we hire next? (CSM != Support != AM != IM)

Built under karpathy-coder discipline (4th consecutive PR):
- Assumptions surfaced upfront (CRO vs CCO split: revenue math vs customer
  experience)
- Each tool/reference covers ONE decision; no overlap with business-growth
- Surgical scope; no edits to other c-level skills
- All 3 tools smoke-tested with embedded samples
- karpathy/complexity_checker: 0 findings on 3 new tools
- karpathy/diff_surgeon: 0 findings on staged diff
- check_plugin_json.py + sync_skill_bundles.py --check: both pass

3 stdlib Python tools:

- retention_decomposition_analyzer.py - Decomposes ARR by cohort into
  GRR/NRR/Logo separately. Flags leaky-bucket pattern (NRR > 100% AND
  GRR < 85%). 7-category churn root-cause taxonomy with preventable %.
  Sample: Q1 GRR 91.7% CONCERNING (NRR 106.7%), Q2 GRR 84.7% CRITICAL,
  top driver = product_fit at 54.5% preventable.
- customer_segmentation_designer.py - 4-tier framework (Strategic /
  Enterprise / Mid-market / SMB-long-tail) with ICP fit scoring (7
  weighted signals). Surfaces kill list (support cost > 50% of ARR AND
  ICP fit < 5) + upgrade candidates. Sample: 5 customers tiered, 1 kill
  candidate, 2 upgrades. Strategic tier = 76.7% of ARR (Pareto).
- cs_coverage_calculator.py - CSM headcount per tier with dual constraints
  (ARR ratio + account count, whichever binds). Manager-trigger thresholds.
  12-month hiring plan with quarterly sequencing. Sample: 4 current ->
  12 needed at 40% growth, $2.25M annual cost, 8 hires planned.

4 in-depth references each citing 5+ authoritative sources:

- retention_decomposition.md - GRR vs NRR math, leaky-bucket pattern,
  7-category churn taxonomy, leading-indicator playbook. Cites
  Mehta/Steinman/Murphy, Lincoln Murphy, David Skok, BVP, ChartMogul,
  Reichheld, Tunguz.
- customer_segmentation_strategy.md - 4-tier framework, ICP fit (7
  signals), tier transition triggers, kill list criteria. Cites Lincoln
  Murphy, Bain Loyalty Effect, Tunguz, Skok, ChartMogul, Challenger Customer.
- cs_coverage_model.md - 4 coverage models with ratios by stage/segment,
  manager-trigger, comp design, ramp curves. Cites Gainsight, TSIA,
  Mehta/Pickens, ChurnZero, Skok, KeyBanc SaaS survey.
- cs_team_org_evolution.md - 5-stage role map, 6-role distinction table
  (CSM/Support/AM/IM/CS Ops/Customer Marketing), AM-vs-CSM split, 7
  anti-patterns. Cites Mehta/Steinman/Murphy, Mehta/Pickens, BVP, TSIA,
  Gainsight, ChurnZero, Lincoln Murphy.

cs-cco-advisor agent: retention-obsessed pragmatist. Voice: "What's your
gross retention rate, and what's the #1 reason customers leave?" Trusts
GRR over NRR. Refuses to recommend CS hires without naming the customer
outcome they unblock.

/cs:cco-review slash command: 6-question forcing interrogation (GRR truth,
top churn driver, time-to-value, kill-list candidates, ARR-per-CSM
ratio + coverage model, CS comp alignment).

Dual-published from the start (matching the #624 pattern):
- Standalone wrapper at c-level-advisor/chief-customer-officer-advisor/
  with mirrored content
- New marketplace entry: chief-customer-officer-advisor
- Bundled mirror at c-level-advisor/skills/chief-customer-officer-advisor/

Updates:
- c-level plugin.json: v2.5.3 -> v2.5.4 (32 skills, 12 cs-* agents)
- c-level-agents plugin.json: v1.3.0 -> v1.4.0 (12 agents, 20 commands)
- marketplace.json: bumped both c-level entries; new CCO standalone entry;
  +chief-customer-officer, cco, retention-decomposition, customer-segmentation,
  cs-coverage keywords (marketplace plugins: 37 -> 38)
- c-level CLAUDE.md: CCO row added; agent + count tables updated
- Root CLAUDE.md: 266->267 skills, 31->32 cs-* agents, 367->370 tools,
  498->502 references, 52->53 commands; v2.5.4 highlight section
- CHANGELOG.md: v2.5.4 entry with karpathy-discipline rationale

Carry-over (still not in scope): cs-general-counsel-advisor voice spec
missing from persona-voices.md; Phase 2 remainder (VPE, CCO-comms).

Disclaimer in every output: retention benchmarks vary significantly by
ACV/segment/industry; B2B SaaS-baseline guidance only.

https://claude.ai/code/session_012WtZMm5NJHqkYoRqA9fHMN
2026-05-13 05:39:46 +00:00
Claude
7ae93385bd
feat(chief-ai-officer-advisor): eval-demanding CAIO skill (v2.5.3)
World-class, in-depth Chief AI Officer skill covering 4 specific decisions
(not a generic AI strategy survey):

  1. Should we use an API, fine-tune, or build our own?  (3-yr TCO + breakeven)
  2. Is this AI use case high-risk under regulation?  (EU AI Act + US state +
     industry overlays with Article-level citations)
  3. When do we switch from API to self-hosted, and at what cost?  (2026
     pricing + GPU economics + hidden costs)
  4. What AI role do we hire next?  (5-stage map + 9-role definition table)

Built under karpathy-coder discipline (third in a row):
- Assumptions surfaced upfront before code (principle 1)
- Each tool/reference covers ONE decision; rejected generic-survey scope (#2)
- Surgical changes only; no scope creep (#3)
- All 3 tools smoke-tested with embedded samples before commit (#4)
- karpathy/complexity_checker.py: 0 findings on 3 new tools
- karpathy/diff_surgeon.py: 0 findings on staged diff

3 stdlib Python tools with deterministic logic:

- model_buildvsbuy_calculator.py — Returns API/FINE_TUNE/BUILD recommendation,
  3-year TCO across 6 paths, breakeven analysis. Balances economic crossover
  with practical feasibility (data availability, ML team capacity, compliance).
  Embedded sample (B2B customer support, 4M queries/mo) -> API recommended
  despite breakeven crossed, because no fine-tune data + 1-engineer ML team.
- ai_risk_classifier.py — Returns EU AI Act tier (PROHIBITED/HIGH/LIMITED/
  MINIMAL) with 7 Article citations + US state triggers (NYC LL 144, CO AI
  Act, IL HB 53, CA SB 1001, IL BIPA) + industry overlays (FDA, CFPB, NAIC,
  ECOA, Fed SR 11-7). Sample (AI hiring in EU+NY+CO+IL+CA) -> HIGH,
  conformity required, 3 US triggers, 14 controls.
- ai_cost_economics.py — Returns API costs (3 tiers) + self-hosted costs (low/
  mid/high GPU rates with 24/7 warm + ops attribution) + breakeven analysis.
  Reveals key insight: self-hosted floor makes API economics dominate at
  typical B2B SaaS scale. Sample (5M tokens/day, 750M/mo) -> API at $1,500/mo
  beats self-hosted at $13,450/mo by 9x; breakeven at 6.7B tokens/mo.

4 in-depth references, each citing 5+ authoritative sources:

- model_buildvsbuy_strategy.md — 3 paths with failure modes, 6 fine-tuning
  approaches ranked by cost (RAG/LoRA/full FT/RLHF/DPO/continued pre-training),
  decision tree, eval-first discipline. Cites Anthropic/OpenAI/Google/Meta
  model cards, LoRA paper, RLHF paper, DPO paper, Stanford CRFM Foundation
  Models report, Foundation Models and Fair Use (Henderson et al.).
- ai_risk_governance.md — Full EU AI Act tier map (Art. 5 prohibited, Art. 6
  + Annex III high-risk, Art. 50 limited-risk) with all 8 high-risk domains
  + 11 obligation articles. NIST AI RMF 1.0. US state patchwork (9 laws).
  Industry overlays (FDA AI/ML, CFPB, NYDFS, NAIC). 10-item governance
  program checklist. When-to-hire-AI-counsel criteria.
- ai_cost_economics.md — 2026 API pricing (4 tiers), GPU rental (A100/H100/
  H200/B200), throughput estimates, GPU count by model size, utilization
  reality (20-80%), 6 hidden costs of self-hosted, 6 hidden costs of API,
  migration cost, prompt caching as economics lever. Cites vLLM paper,
  DistServe, HELM, Artificial Analysis.
- ai_team_org_evolution.md — 5-stage role map (pre-seed -> late-stage),
  9-role definition table (AI engineer != ML engineer != research scientist),
  AI team vs data team contrast (8 dimensions), 7 anti-patterns, hiring
  sequencing rule. Cites Huyen "Designing ML Systems" + "AI Engineering",
  State of AI Report.

cs-caio-advisor agent (c-level-agents/agents/cs-caio-advisor.md):
- Eval-demanding realist voice
- Hard rule: does not duplicate engineering AI/ML skills (rag-architect,
  agent-designer, prompt-governance, self-eval, llm-cost-optimizer)
- Treats every AI use case as a hiring decision; pushes back on AI hype

/cs:caio-review slash command:
- 6-question forcing interrogation: eval set, hallucination SLO, regulatory
  tier, model selection, cost trajectory, role-that-unblocks
- Routes to /cs:cdo-review, /cs:gc-review, /cs:ciso-review, /cs:cfo-review,
  /cs:chro-review

cs-caio-advisor voice spec added to persona-voices.md.

Updates:
- c-level plugin.json: v2.5.2 -> v2.5.3 (31 skills, 11 cs-* agents)
- c-level-agents plugin.json: v1.2.0 -> v1.3.0 (11 agents, 19 commands)
- marketplace.json: both c-level entries; new CAIO keywords (chief-ai-officer,
  caio, ai-strategy, model-buildvsbuy, eu-ai-act, ai-cost-economics)
- c-level CLAUDE.md: CAIO row added; agent + count tables updated
- Root CLAUDE.md: 265->266 skills, 30->31 cs-* agents, 364->367 tools,
  494->498 references, 51->52 commands; v2.5.3 highlight section
- CHANGELOG.md: v2.5.3 entry with full rationale

Known follow-up (out of scope this PR): cs-general-counsel-advisor voice spec
still missing from persona-voices.md (carried from v2.5.1); separate PR.

Disclaimer in every output: not legal advice; not a replacement for AI
counsel on EU AI Act conformity; not a tactical AI/ML engineering skill.

https://claude.ai/code/session_012WtZMm5NJHqkYoRqA9fHMN
2026-05-12 18:41:04 +00:00
Claude
4b4045e1b3
feat(chief-data-officer-advisor): decision-driven CDO skill (v2.5.2)
Opinionated CDO skill covering 4 specific decisions, not a generic data
governance survey:

  1. Can we train our model on this data?  (training rights matrix)
  2. Warehouse / lakehouse / mesh + build-vs-buy?  (data product strategy)
  3. What is our customer data worth?  (B2B customer-data-as-asset)
  4. What data role do we hire next?  (data team org evolution)

Built under explicit karpathy-coder discipline:
- Assumptions surfaced upfront before code (principle 1)
- Each tool/reference covers ONE decision; rejected generic-survey scope (#2)
- Surgical changes only; caught and reverted scope creep (cs-gc voice spec)
  before commit (#3)
- Verifiable success criteria locked before code; all 3 tools smoke-tested
  with embedded samples (#4)
- karpathy-coder/complexity_checker.py: 0 findings on 3 new tools
- karpathy-coder/diff_surgeon.py: 0 findings on staged diff

3 stdlib Python tools with deterministic logic (not pattern-match prose):

- ai_training_data_audit.py — 3-dimension matrix (origin x class x use case)
  with GDPR Art. 6 + EU AI Act + US state citations. Embedded sample tests
  7 sources spanning all 3 verdicts (2 NO-GO / 2 MITIGATE / 3 GO).
- data_product_strategy_picker.py — Picks warehouse/lakehouse/mesh from
  profile, returns 6-layer build-vs-buy + 12-month sequencing. Series A
  sample (8 consumers, 4.5TB, 1 ML model) -> LAKEHOUSE.
- data_asset_valuator.py — Strategic value 0-10 from 4 components
  (exclusivity, freshness, cohort, history), moat strength, M&A multiplier
  (1.0x-1.7x ARR with carve-out penalties), 3 ranked productization paths.
  Sample (B2B sales engagement, 380 customers, 47 carve-outs) -> 8.2/10
  STRONG moat, 1.33-1.61x multiplier, recommends benchmark report first.

4 references, each answering ONE decision:

- ai_training_data_rights.md — Training rights matrix + GDPR decision tree
  + EU AI Act + US state patchwork (CCPA/CPRA, NYC LL 144, IL BIPA, WA MHMD)
- data_product_strategy.md — Architecture kill criteria + 6-layer
  build-vs-buy + sequencing pattern + anti-patterns
- customer_data_as_asset.md — Valuation framework + 3 productization paths
  + 10-item M&A diligence checklist + contractual constraint audit
- data_team_org_evolution.md — 5-stage role map + centralize-vs-embed
  trigger + 6 anti-patterns (e.g., "hiring data scientist as first hire")

cs-cdo-advisor agent (c-level-agents/agents/cs-cdo-advisor.md):
- Decision-driven realist voice
- Hard rule: does not duplicate engineering data skills (database-designer,
  observability-designer, rag-architect, llm-cost-optimizer)
- Refuses to recommend tooling before naming the consumer

/cs:cdo-review slash command:
- 6-question forcing interrogation matching /cs:cfo-review pattern
- Routes to /cs:gc-review, /cs:ciso-review, /cs:cfo-review, /cs:chro-review

cs-cdo-advisor voice spec added to persona-voices.md.

Known follow-up (out of scope this PR): cs-general-counsel-advisor voice
spec is missing from persona-voices.md (gap from v2.5.1); separate small PR.

Updates:
- c-level plugin.json: v2.5.1 -> v2.5.2 (30 skills, 10 cs-* agents)
- c-level-agents plugin.json: v1.1.0 -> v1.2.0 (10 agents, 18 commands)
- marketplace.json: both c-level entries; new CDO keywords (chief-data-officer,
  cdo, ai-training-data, data-product-strategy, data-as-asset)
- c-level CLAUDE.md: CDO row added; agent + count tables updated
- Root CLAUDE.md: 264 -> 265 skills, 29 -> 30 cs-* agents, 361 -> 364 tools,
  490 -> 494 references, 50 -> 51 commands; v2.5.2 highlight added
- CHANGELOG.md: v2.5.2 entry with karpathy-discipline rationale

Disclaimer in every output: not legal advice; not a replacement for outside
counsel on productization/licensing; not a tactical data engineering skill.

https://claude.ai/code/session_012WtZMm5NJHqkYoRqA9fHMN
2026-05-12 15:20:52 +00:00
Claude
8bbde435b9
feat(general-counsel-advisor): full skill backing /cs:gc-review
Closes the gstack-can't-touch lane: gstack has zero legal coverage; this is
the first plugin in the founder-mode lineup to outclass it on a domain it
doesn't even attempt. Legal exposure is where startups most often discover a
problem after it's expensive to fix.

New skill (c-level-advisor/skills/general-counsel-advisor/):
- SKILL.md with 4 workflows (contract review, term sheet response, IP hygiene
  audit, regulatory trigger assessment), keywords, output standards
- scripts/contract_risk_scanner.py — scans contract text for 12 founder-killer
  patterns (auto-renew traps, uncapped indemnity, vague IP, aggressive
  non-compete, missing DPA when personal data flows, MFN pricing, perpetual
  license-back, one-sided force majeure/venue/audit, broad non-solicit).
  Stdlib-only, JSON+text output, --help. Smoke-tested: 7 findings on embedded
  sample MSA across CRITICAL/HIGH/MEDIUM.
- scripts/term_sheet_analyzer.py — scores term sheet 0-100 across 12 dimensions
  (liquidation preference, anti-dilution, option pool pre/post-money, board,
  vesting, pro-rata, drag-along, protective provisions, info rights, dividends,
  valuation, holistic). Stdlib-only, JSON-input + JSON+text output, --help.
  Smoke-tested: founder-friendly Series A sample scores 94/100.
- references/contracts_playbook.md — 7 startup contract types with top redlines
- references/ip_and_regulatory.md — IP strategy + regulatory trigger matrix
  (HIPAA/GDPR/FDA/fintech/AI Act) + SOC 2 -> ISO sequencing
- references/term_sheet_decoder.md — full glossary, founder-friendly defaults,
  the 3 clauses that matter most, negotiation strategy

New agent (c-level-advisor/c-level-agents/agents/cs-general-counsel-advisor.md):
- Risk-paranoid persona orchestrating the skill
- Voice: "Before we sign, three things need to be settled in writing."
- Hard rule: never substitutes for licensed counsel; always escalates

Updates:
- /cs:gc-review SKILL.md: now points at the real skill + tools (was a planned-
  skill placeholder before)
- c-level-advisor/.claude-plugin/plugin.json: v2.5.0 -> v2.5.1, description
  updated to 29 skills (was 28)
- c-level-advisor/c-level-agents/.claude-plugin/plugin.json: v1.0.0 -> v1.1.0,
  9 cs-* agents (was 8)
- marketplace.json: both c-level entries bumped, +contract-review, +term-sheet,
  +ip-strategy keywords
- c-level-advisor/CLAUDE.md: General Counsel added to roles table; agents and
  counts updated
- Root CLAUDE.md: 263 -> 264 skills, 28 -> 29 cs-* agents, 359 -> 361 Python
  tools, 487 -> 490 references; v2.5.1 highlight section added
- CHANGELOG.md: full v2.5.1 entry with rationale

Disclaimer: every tool/reference/agent output reminds users this is not legal
advice; always engage qualified counsel. The skill is positioned as triage
before $500/hour counsel time, never as a substitute.

https://claude.ai/code/session_012WtZMm5NJHqkYoRqA9fHMN
2026-05-12 14:24:28 +00:00
Reza Rezvani
1851c8fb09 fix(plugins): restructure 9 multi-skill domain plugins into ./skills/ layout
Same root cause as #587/#591 — Claude Code's runtime loader rejects
array-form skills paths like ["./content-production", "./ai-seo", ...]
even when each entry is a valid subdirectory containing SKILL.md.
`claude plugin validate` accepts them but the loader does not.

The proven canonical layout (used by self-improving-agent in #536):

  <plugin>/
  ├── .claude-plugin/plugin.json    skills: "./skills"
  └── skills/
      ├── <skill-1>/SKILL.md
      ├── <skill-2>/SKILL.md
      └── ...

Restructured 9 multi-skill domain plugins:
- business-growth (4 skills moved)
- c-level-advisor (28)
- engineering (36)
- engineering-team (32)
- finance (2)
- marketing-skill (43)
- product-team (12)
- project-management (8)
- ra-qm-team (13)

Also fixed standalone plugins that had root SKILL.md + ./skills/ subdir
(agenthub, autoresearch-agent, executive-mentor, playwright-pro). The
loader rejected them despite skills="./skills" because of the conflicting
root SKILL.md (compare self-improving-agent which works because PR #536
moved its root SKILL.md). Moved each root SKILL.md into ./skills/<name>/.

Restored standalone plugin folders to their original paths after the
multi-skill restructure swept them into parent skills/ directories
(marketplace.json source paths require original locations).

Removed 7 orphaned marketplace entries that pointed to skill folders
without their own plugin.json (content-creator, demand-gen,
fullstack-engineer, aws-architect, product-manager, scrum-master,
skill-security-auditor) — these were already non-functional.

Bumped patch versions on every changed plugin and synced
marketplace.json. Marketplace now lists 29 working plugins (down
from 36).

After merge: users run `/plugin marketplace update claude-code-skills`
followed by `/plugin update --all` to pick up the working layout.
2026-05-02 22:51:20 +02:00