Commit graph

1121 commits

Author SHA1 Message Date
Claude
6299bb8506
fix(ra-qm): QMSR staleness in 5 remaining skills (audit PR-3)
capa-officer, quality-documentation-manager, quality-manager-qmr,
quality-manager-qms-iso13485, and the ra-qm-skills router still presented
legacy QSR 820.x subsections as current FDA law — the same P0-class defect
fixed in fda-consultant-specialist (PR #835), deferred by that wave's agent.

Applied the identical validated pattern: QMSR status banner (final rule
89 FR 7496, ISO 13485:2016 incorporated by reference, effective 2026-02-02),
820.x relabeled historical with ISO 13485 clause as current authority
(CAPA -> 8.5.2/8.5.3; doc/record control -> 4.2.3/4.2.4/4.2.5 + retained
820.35; QMR/management review -> 5.5.2/5.6), and decision-discipline blocks
added where missing (closure/compliance calls route to named owners).
Substantive content unchanged; no scripts contained 820.x claims.

Verified: zero present-tense 820.x-as-current-law claims remain (all under
historical labels/banners); check_paths 0 findings; counters unchanged.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:59:15 +00:00
alirezarezvani
61ca73ef13 chore: sync codex skills symlinks [automated] 2026-06-11 15:43:25 +00:00
Alireza Rezvani
8edd3c10bd
Merge pull request #838 from alirezarezvani/claude/skills-plugins-audit-vrttx1 2026-06-11 17:43:08 +02:00
Claude
0f132cea13
polish: PR #838 second-pass nits (non-blocking)
- calculate_cac.py: hoist 'import argparse' to module top per repo convention
- smoke_scripts.py: comment the exit-1-over-exit-3 precedence
- check_paths_allowlist.txt: reword the etc/passwd note ('outside repo root if
  resolved literally', not 'deep checkouts')
- cs-scraping-architect.md: clarify both warning and error share exit 1 — parse
  the JSON status field for the distinction

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:40:45 +00:00
Claude
3d60318154
docs(scripts,agents): PR #838 review items 1-3
- smoke_scripts.py: --help epilog now documents the exit-code table
  (0 ok / 1 smoke failure / 3 stale exceptions)
- calculate_cac.py: real argparse --help with an epilog stating the
  edit-example_data limitation and the planned --file/stdin enhancement
- cs-scraping-architect.md: add 'model: sonnet' to match sibling agents

Item 4 (senior-security references) was a non-issue — all three referenced
files exist and the now-blocking path gate is green.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:36:35 +00:00
Claude
897c5eea3f
Merge remote-tracking branch 'origin/dev' into claude/skills-plugins-audit-vrttx1
# Conflicts:
#	.github/workflows/ci-quality-gate.yml
2026-06-11 15:36:35 +00:00
Claude
595de4b1a1
docs(marketing): TODO on calculate_cac.py automation limitation
Per PR #838 review: flag that the script requires hand-editing example_data;
a future --file/stdin interface would make it automatable. No behavior change.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:31:43 +00:00
Alireza Rezvani
3c02a5207a
Merge pull request #839 from alirezarezvani/claude/github-issues-resolution-m6yz57 2026-06-11 17:30:56 +02:00
Claude
cfe7f8f2d2
fix(ci): allowlist path-traversal payload in security-pen-testing SKILL.md
The blocking G1 path gate flagged '../../../etc/passwd' — a path-traversal
ATTACK EXAMPLE in a pen-testing skill's attack-vector table, not a real file
reference. It passed locally only because a deep checkout makes ../../../ climb
to the host's real /etc/passwd; on the CI runner it doesn't resolve. Allowlisted
with a reason, per the gate's documented edge-case process.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:30:43 +00:00
Claude
028dc13b35
feat(tooling): JSON-output sample gate (G9) + --sample fixtures (#654)
Implements issue #654 Option A (embedded-sample convention) plus the
verification harness the issue asked for:

- scripts/smoke_json_output.py — new advisory gate (G9) that discovers
  every tool whose --help advertises JSON output, runs <tool> --sample
  <json-flag>, and asserts the stdout parses as JSON. Tools advertising
  JSON without --sample are reported as 'uncovered' (a backlog, not a
  failure) so the gate can be adopted incrementally; --strict flips that
  to a hard failure once coverage is high. Wired into ci-quality-gate.yml
  alongside G8.
- Added --sample embedded fixtures to the 5 tools named in #654:
  error_budget_calculator, slo_review, blast_radius_calculator,
  audit_log_analyzer, api_linter. Their required args are now optional
  when --sample is passed; missing-arg behavior is unchanged otherwise.
- Fixed 4 tools the new gate surfaced (prompt_rater, coach_tip_classifier,
  cheat_code_filter, redaction_linter): their --sample path printed human
  text and ignored --json; it now honors the JSON flag.
- Synced the 3 dual-published standalone copies (slo-architect x2,
  chaos-engineering) so the drift guard stays green.

Gate now reports 16 tools covered, 16 verified, 0 failures.

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 15:29:39 +00:00
Claude
5acece10ac
feat(skills): PR-2 — final REWRITE-verdict skills + dead-link/zip cleanup
- senior-prompt-engineer: rebuilt on the new-gen pattern; 2023-era cheatsheet
  dropped; scripts made model-agnostic and rot-proof (user-supplied pricing,
  no hardcoded model/cost tables); 5 workflows with executable exit-code
  gates; zero stale model names remain
- senior-security: 445 -> 64 lines; owns only its unique STRIDE/DREAD value
  with exact CLIs; 10-row lane table routes everything the v2.2 security
  suite covers (all paths verified)
- engineering-team docs: all dead computer:/// links repointed to live
  skills/ folders; all 14 stale .zip archives deleted (0 references remain;
  folders are the canonical distribution)
- universal-scraping-architect: placeholder cs-scraping-architect agent and
  cs-scrape command rewritten with verified CLIs, refusal gates, and the
  empirically-confirmed validate_extraction.py exit-code contract

Gates at HEAD: check_paths 0 findings; check_dual_publish 0 drifted;
smoke 582/582; counters match; 78 manifests OK; compileall clean.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:28:22 +00:00
Claude
fcce9592fb
feat(agents): rebuild cs-content-creator + cs-demand-gen-specialist (PR-2)
- cs-content-creator retargeted off the deprecated content-creator stub to
  marketing-skill/skills/content-production; Use-when description; all 4
  script CLIs verified; workflows end at the skill's documented thresholds
  (score >= 70, quality gates as publish blocker)
- cs-demand-gen-specialist now orchestrates all 3 verified targets
  (marketing-demand-acquisition, paid-ads, email-sequence); hard rules
  (margin-adjusted ROAS, no scaling without verified tracking); honest CLI
  for calculate_cac.py (script takes no args — old agent documented a
  phantom invocation)
- marketing-demand-acquisition SKILL.md: same phantom calculate_cac
  invocation corrected (verified no-args run exits 0)
- marketing_skills_roadmap.md deleted: stale planning material, now
  unreferenced after the agent rewrites (was kept in wave-3 only because
  these two agents linked it)

Verified: check_paths 0 findings on both agents; 8 documented CLIs pass
--help; descriptions <= 1024 with Use-when phrasing.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:24:57 +00:00
Claude
0c2d8c0180
fix(ci,scripts): post-merge review items M1/M2/A3/A4
- enforce-pr-target.yml: drop the no-op split/trim/join on the comment body
  (array join already produces the final text)
- ci-quality-gate.yml: safety findings now emit a workflow warning instead
  of being silently absorbed by '|| true'
- check_paths.py: fnmatch import hoisted to module level
- smoke_scripts.py: stale exception entries now fail the gate (exit 3) so
  scripts/smoke_exceptions.txt stays tidy

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:23:27 +00:00
Claude
c3fd4e0ccc
ci: flip the four audit guard gates from advisory to blocking
Every advisory run was green through PR #835, so the burn-in SLA
(2026-07-01 or 10 green runs) is satisfied early. Edge cases route to the
in-repo allowlists (check_paths_allowlist.txt, smoke_exceptions.txt)
instead of continue-on-error.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:20:08 +00:00
alirezarezvani
5c395451a3 chore: sync codex skills symlinks [automated] 2026-06-11 15:12:26 +00:00
Alireza Rezvani
d287c2bb43
Merge pull request #835 from alirezarezvani/claude/skills-plugins-audit-vrttx1 2026-06-11 17:12:10 +02:00
Claude
bf33d32051
fix: third-pass review items — counter logic, FDA example annotation, audit/ policy
- derive_counters.py: python_tools condition simplified to the equivalent
  parts[0] != 'scripts' (reviewer M1); dead root_scripts variable removed;
  --check still passes with identical values
- fda-consultant-specialist quick-start: 820.30 example annotated as a legacy
  checklist key mapping to ISO 13485 §7.3 (reviewer m3 — note: switching the
  example to '--section 7.3' as suggested would break; the checker's CLI keys
  are intentionally the legacy 820.x checklist indices, documented in --help)
- CLAUDE.md: audit/ directory documented as an intentional public audit
  record, distinct from the gitignored AUDIT_REPORT.md (reviewer m2)

Reviewer m1 (agents/CLAUDE.md 'engineering-team/' link) is a false positive:
agents/engineering-team/ exists as an agents subfolder containing exactly the
two linked files; check_paths.py confirms 0 unresolvable references.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 15:11:00 +00:00
Claude
30e0cd83ca
ci: fix yamllint line-length errors in enforce-pr-target workflow
Long template-string lines (161 and 205 chars) split into an array join;
behavior unchanged. yamllint line-length limit is 160.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 05:07:52 +00:00
Claude
f0d180165e
ci,docs: branch-based main-PR enforcement + gate SLA + deprecation notes
- enforce-pr-target.yml: the maintainer exemption let any maintainer PR
  target main — replaced with the branch-based hard rule from CLAUDE.md:
  only dev->main promotion PRs are allowed, regardless of author.
  Maintainer PRs now fail the check with retarget instructions (not
  auto-closed); non-maintainer PRs are commented and closed as before.
  Re-checks on edited/ready_for_review so retargeting clears it.
- ci-quality-gate.yml: flip-to-blocking SLA documented for the 4 advisory
  gates (2026-07-01 or 10 consecutive green runs on dev)
- CHANGELOG.md: Deprecated/Removed Skills section with migration paths for
  command-guide, ai-seo (-> aeo), release-manager (-> changelog-generator)

Addresses automated review feedback on PR #835 (items 1, 3, 6).

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 05:06:33 +00:00
Claude
3763c669c2
fix(engineering): move universal-scraping-architect to standard standalone layout
The skill was the repo's only SKILL.md at plugin-root depth
(engineering/universal-scraping-architect/SKILL.md). That nonstandard shape:
- made it the only skill the Tessl quality gate's depth-2 detector fires on
  (the gate then fails with an error-fallback 0/100 because the workflow has
  no Tessl credentials)
- hid it from convert.sh (-mindepth 4)
- was flagged twice in the newgen audit

Now matches the standalone-plugin convention (skills/<name>/SKILL.md, agents/
+ commands/ + .claude-plugin at plugin root, skills: ['./skills']).
No content changes. Marketplace source path unchanged and still valid.

Gates: 78 manifests OK, 0 unresolvable paths, 0 dual-publish drift,
smoke 582/582, counters match.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 04:05:17 +00:00
Claude
796455dff5
chore: post-merge reconciliation — counters + sync trees for collab-proof
dev's PR #836 added the collab-proof plugin and a codebuff sync script.
Re-derived counters (345 skills / 78 plugins / 702 references), regenerated
all sync indexes. All gates green: 78 manifests OK, 0 unresolvable paths,
0 dual-publish drift, smoke 582/582.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 04:00:19 +00:00
Claude
2e600b6454
Merge remote-tracking branch 'origin/dev' into claude/skills-plugins-audit-vrttx1
# Conflicts:
#	.claude-plugin/marketplace.json
#	.codex/skills-index.json
2026-06-11 03:59:40 +00:00
Claude
645453278a
chore(registry,docs): reconcile counters, prune deleted-skill refs, resync trees
- counters trued to derived values (344 skills / 579 tools / 698 references)
  in README.md + marketplace.json; derive_counters --check passes
- marketplace descriptions fixed: marketing-skills (8 pods, real tool counts),
  engineering-advanced-skills (37 actual skills, mirrors plugin.json)
- deleted-skill references pruned from README, mkdocs nav, docs pages,
  cs-senior-engineer docs page
- .codex/.gemini/.hermes/.vibe sync trees regenerated; dangling symlinks for
  ai-seo/release-manager removed

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 03:58:42 +00:00
Claude
894fd23334
feat(agents,commands): trigger descriptions + gated workflow upgrades
- 17 root agents gained 'Use when...' trigger descriptions (<=1024 chars);
  cs-product-analyst placeholder body rewritten around real tools
- 21 commands had invalid YAML frontmatter fixed (unquoted inner colons);
  14 commands gained argument-hint; 6 duplicate commands marked with
  canonical-copy sync comments
- /prd: forcing questions + refuse-to-draft gate + required-sections checklist
- /sprint-plan: capacity math + carry-over check + definition-of-ready gate
- /tdd: rebuilt around the real tdd-guide assets with smoke-tested snippets
- cs-senior-engineer repointed from retired release-manager to
  changelog-generator

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 03:58:42 +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
7a3aca8640
docs(workflow): hard rule — PRs always target dev, never main
Adds an unmissable blockquote to the Git Workflow section: every PR (human or
AI) uses --base dev; main only receives dev->main promotion PRs from the
maintainer. Also trues the Current Scope counters to derived values
(344 skills / 579 tools / 698 references after wave-3 merges and removals).

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-11 03:58:41 +00:00
Alireza Rezvani
5272a2c0c2
Merge pull request #836 from alirezarezvani/claude/github-issues-resolution-m6yz57
Some checks failed
Sync Codex Skills Symlinks / sync (push) Has been cancelled
2026-06-11 05:50:22 +02:00
Claude
3394eda8bc
fix: resolve open GitHub issues #805 #806 #807 #748 #785
- #805: insert missing skills/ segment in all per-skill install commands
  across 5 domain READMEs (engineering-team, project-management,
  marketing-skill, c-level-advisor, ra-qm-team); every path now resolves
  to a real directory
- #806: pr-review-expert SKILL.md curl examples now pass Jira/Linear
  credentials via stdin curl config (-K -) instead of argv, with a netrc
  note, so tokens never reach the process list or shell history
- #807: implement the documented interfaces for the three senior-devops
  scripts (terraform_scaffolder: aws/gcp/azure module skeletons with
  optional terraform fmt/validate; pipeline_generator: GitHub Actions /
  CircleCI configs with build,test,security,deploy stages and runtime
  detection; deployment_manager: blue-green/rolling manifests + kubectl
  runbooks with deploy/rollback/analyze subcommands); align SKILL.md
- #807: ci-cd-pipeline-builder stack_detector now detects Terraform and
  Docker stacks and emits their lint/test/build commands; downstream
  pipeline_generator gains a generic job for non-node/python/go stacks
- #748: sync-vibe-skills.py defaults to a flat layout one level below
  ~/.vibe/skills (the only depth Vibe discovers), with collision-safe
  naming and a --nested flag for the legacy namespaced layout
- #785: new scripts/sync-codebuff-skills.py syncs all skills into
  Codebuff's ~/.agents/skills using the same flat-layout machinery

https://claude.ai/code/session_01CUWsrUNZP9jpxvAwq67UiT
2026-06-11 03:34:13 +00:00
Claude
c84e322a99
chore(registry,ci): derive counters, register 11 plugins, add CI guards
- marketplace.json: 11 shipped-but-unregistered plugins added (compliance-os,
  snowflake-development, behuman, claude-coach, grill-with-docs,
  llm-cost-optimizer, prompt-governance, business-investment-advisor,
  video-content-strategist, compliance-team-eu-ai-act, compliance-team-iso42001)
  -> 77/77 registered; self-contradicting counts fixed
- counters reconciled to derived ground truth across README.md, CLAUDE.md,
  agents/CLAUDE.md, marketplace.json (346 skills / 17 domains / 584 tools /
  701 references / 93 agents / 99 commands / 77 plugins)
- new guards: scripts/derive_counters.py (--check, gate G3),
  scripts/check_dual_publish.py (11 pairs, gate G4),
  scripts/smoke_scripts.py + smoke_exceptions.txt (gate G8)
- meta-tooling fixes (gate G9): generate-docs.py --help no longer rewrites
  docs/ as a side effect; audit_skills.py --help instant; markdown-html added
  to hermes/vibe/gemini sync scripts and generate-docs domain maps
- ci-quality-gate.yml: compileall completed 9 -> 17 domains; 4 new advisory
  gate steps (continue-on-error pending burn-in)

Verification (all green): check_plugin_json --all 77 OK; check_paths --all 0
findings; check_dual_publish 0 drifted; smoke 586 pass / 0 fail / 11 by-design
exceptions; derive_counters --check pass; compileall 17 domains rc=0.

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-10 14:33:19 +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
b99505446a
fix: resolve 11 P0 correctness defects from newgen audit
- fda-consultant-specialist: QMSR transition (eff. 2026-02-02) correctly framed;
  legacy QSR sections mapped to ISO 13485:2016 clauses (17-row mapping)
- risk-management-specialist: ALARP-with-cost-benefit replaced by AFAP per
  EU MDR Annex I GSPR 1-4 + EN ISO 14971:2019/A11
- eu-ai-act-specialist: Art. 5(1)(f) sample corrected (workplace, not retail);
  both dual-published copies kept byte-identical
- financial-analyst: 4 scripts now read bundled sample shape (and flat shape),
  exit non-zero on missing data; verified real outputs (ROE 25%, DCF $13.90/sh)
- deal-desk: fixed-COGS margin math unified across script/reference/SKILL.md;
  margin scoring recalibrated (30% discount on 80% GM now scores 25, not 37)
- senior-qa/backend/frontend + email-template-builder: 8 corrupted code
  literals from past bulk YAML-quoting sweep reconstructed
- google-workspace-cli: install coordinates fixed to verified upstream
  (@googleworkspace/cli); phantom subcommands replaced with verified syntax
- project-management: fabricated Atlassian MCP tool names replaced with the 30
  real Remote MCP tools; new canonical references/atlassian-mcp-tools.md;
  unavailable capabilities routed to UI/REST; orphaned scripts wired
- command-guide: retired (documented a different repo's ecosystem)
- markdown-html: stale v2.10.0 'foundation' text replaced; routing now targets
  the shipped converters; never hand-render
- webinar_funnel_scorer.py: argparse added (--help/--sample/stdin)
- handoff redaction linter: missing 17th pattern (private CIDR) added

https://claude.ai/code/session_019AJddAL1NADWMXsy1qNPQF
2026-06-10 14:32:43 +00:00
Alireza Rezvani
2b8ae59417
Merge pull request #834 from alirezarezvani/claude/skills-plugins-audit-vrttx1 2026-06-10 15:46:46 +02:00
Claude
048da419e0
docs(audit): add cross-cutting report + master synthesis (00-MASTER.md) 2026-06-10 05:26:42 +00:00
Claude
189533f9bf
docs(audit): add productivity + markdown-html domain report 2026-06-10 05:24:38 +00:00
Claude
0f6345d88f
docs(audit): add research + research-ops domain report 2026-06-10 05:22:53 +00:00
Claude
5d1268129b
docs(audit): add research + bizops-commercial-finance domain reports 2026-06-10 05:21:39 +00:00
Claude
4e7f07e378
docs(audit): add compliance domain report (ra-qm-team + compliance-os) 2026-06-10 05:21:04 +00:00
Claude
7b326bae5a
docs(audit): update domain reports 2026-06-10 05:20:18 +00:00
Claude
ba8caeeea4
docs(audit): add product-team + project-management domain report 2026-06-10 05:19:37 +00:00
Claude
2c046ef820
docs(audit): add new-gen model optimization rubric (audit baseline) 2026-06-10 05:16:07 +00:00
alirezarezvani
8e38104884 chore: sync codex skills symlinks [automated]
Some checks failed
Sync Codex Skills Symlinks / sync (push) Has been cancelled
2026-06-07 04:15:18 +00:00
Alireza Rezvani
b1c377d6e9
Merge pull request #808 from alirezarezvani/claude/pr-887-audit-fzql4 2026-06-07 06:15:09 +02:00
Claude
7303501f09
fix(collab-proof): add trailing newline + attribution block to plugin.json
Addresses automated review on #808:
- must-fix: plugin.json had no trailing newline
- convention: add attribution block crediting source repo (external MIT work)

https://claude.ai/code/session_012iCc6XcNqiJzCGfKHz1DKi
2026-06-07 04:09:37 +00:00
Claude
753adb46f0
feat(engineering): add collab-proof skill (clean re-land of #788)
Adds the collab-proof AI-collaboration retrospective skill from PR #788
(contributor: dong7812) without the regressions in that branch:

- Net-add marketplace entry (PR #788 overwrote the youtube-full plugin
  slot; that entry is preserved here).
- marketplace.json kept as raw UTF-8 (PR #788 re-serialized with
  ensure_ascii, escaping ~109 chars and polluting the diff).
- Header counters bumped from current dev (344 skills / 695 references /
  65 plugins) instead of reverting to the stale v2.9.0 header.

Skill content (SKILL.md, 4 references, plugin.json, LICENSE) is taken
verbatim from #788. plugin.json passes check_plugin_json.

https://claude.ai/code/session_012iCc6XcNqiJzCGfKHz1DKi
2026-06-07 03:22:08 +00:00
Alireza Rezvani
fcd4fa1b20
Merge pull request #798 from alirezarezvani/dev
Some checks failed
Deploy Documentation to Pages / build (push) Has been cancelled
Sync Codex Skills Symlinks / sync (push) Has been cancelled
Deploy Documentation to Pages / deploy (push) Has been cancelled
2026-06-03 18:49:41 +02:00
alirezarezvani
e123806618 chore: sync codex skills symlinks [automated]
Some checks failed
Sync Codex Skills Symlinks / sync (push) Has been cancelled
2026-06-03 14:16:03 +00:00
D4R7HV493R
9885d82df0
feat(marketing): add cs-webinar-marketer agent + /cs:webinar command (#789)
Adds cs-webinar-marketer agent + /cs:webinar command wiring the webinar-marketing skill (SKILL.md, stdlib funnel scorer, references, templates, evals) under marketing-skill/skills/. Includes a Windows cross-platform fix to scripts/generate-docs.py (normalizes os.sep to forward slashes — verified no-op on Linux) and regenerated docs. Verified: scorer runs (89/100 sample), frontmatter valid, clean merge into dev with no conflicts.
2026-06-03 16:15:44 +02:00
alirezarezvani
aaac269555 chore: sync codex skills symlinks [automated] 2026-06-03 14:13:15 +00:00
Alireza Rezvani
a521e291e8
Merge pull request #796 from alirezarezvani/claude/md-slides-skill 2026-06-03 16:13:01 +02:00
Claude
5c2115dad5
feat(markdown-html): add md-slides v2.10.3 — markdown deck → single-file HTML presentation
Completes the markdown-html/ domain at 5 skills. The Tier-3 use case from
Shihipar's essay ("Slide Decks"): a markdown deck (slides separated by
--- HR boundaries or # H1 headings, with optional <!-- notes: ... -->
presenter notes blocks) becomes a single-file HTML presentation with
keyboard nav, presenter mode, and print-to-PDF.

Three stdlib tools pipeline together:

1. slide_splitter.py — splits markdown on --- HR or # H1 boundaries
   (or --boundary auto: HR wins ≥ 3, else H1 ≥ 5). Extracts the first
   heading per slide as the title. Hard rule: refuses 1-slide decks
   (exit 5 — it's a poster) and no-boundary input (exit 6 — route to
   md-document). Soft-warns slides > 40 source lines (signal-to-noise;
   renders anyway).

2. presenter_notes_parser.py — extracts <!-- notes: ... --> blocks
   (also speaker-notes: and presenter: aliases) per slide, attaches
   as a separate `notes` field, strips from body. Tracks
   notes_coverage_pct for the optional --strict-notes gate (refuses
   < 50% coverage when presenter mode is essential).

3. deck_html_renderer.py — single-file HTML deck. All slides as
   <section class="slide"> elements, one visible at a time (CSS-
   controlled). Vanilla JS keyboard handlers: → / Space / PgDn advance;
   ← / PgUp previous; Home / End first/last; P toggles presenter mode;
   Esc exits presenter. URL-hash deep linking (#3 jumps to slide 3,
   back/forward walks slides). Progress bar at top (3px); slide counter
   bottom-right. Presenter mode = split view: current slide (60% width)
   + panel (40% width with clock + speaker notes + next-slide preview).
   @media print { section { display: block; page-break-after: always; } }
   → Cmd+P produces PDF with one slide per page. prefers-reduced-motion
   honored throughout. Reuses md-document/scripts/markdown_parser.py
   for slide-body content (consistent paragraphs / lists / code / tables
   / callouts). Prism.js is OPT-IN via --syntax (off by default — most
   decks don't need it; keeps the file tiny).

Plus 3 references each citing 5-7 sources:
  - presentation_ux.md — Atkinson Beyond Bullet Points + Reynolds
    Presentation Zen + Tufte Cognitive Style of PowerPoint + NN/g +
    Weinschenk + Marp/reveal.js/Big convergence + Tom MacWright
  - keyboard_nav_patterns.md — reveal.js/Big/Spectacle keymap + WCAG
    2.1.1 + 2.4.3 + MDN KeyboardEvent + NN/g keyboard accessibility
  - single_file_deck_conventions.md — Big + Marp + Pandoc + reveal.js
    standalone + WCAG 2.3.3 + @media print
1 template asset documenting the canonical single-file deck shape.
/cs:md-slides slash command with 6 pre-flight gates + pipeline +
output digest.

Repo-level updates:
- markdown-html/.claude-plugin/plugin.json: skills array adds
  ./skills/md-slides; version 2.10.2 → 2.10.3; description marks
  domain COMPLETE at 5 skills.
- .claude-plugin/marketplace.json: markdown-html-skills entry version
  and description (domain complete); top-level counters 342 → 343
  skills, 545 → 548 Python tools, 688 → 691 references, 89 → 90 slash
  commands; metadata.version 2.10.2 → 2.10.3.
- Root CLAUDE.md: v2.10.3 release-notes block above v2.10.2.

Validation:
- check_plugin_json.py → OK
- sync-codex-skills.py --dry-run → 1 new symlink, documentation:
  5 skills, total 345
- skill_description_validator.py → PASS (all 5 checks: present,
  826/1024 chars, third-person, trigger "use after", action verb
  "Convert")
- skill_review_checklist_runner.py → 5/6 PASS (under-100-lines warns
  at 102; same advisory as md-document SKILL.md)
- All 3 tools pass --help and --sample
- Hard rules verified end-to-end:
    no-boundary input → exit 6 with md-document routing hint
    1-slide deck → exit 5 with poster recommendation
    --strict-notes with < 50% coverage → exit 7
- Full pipeline on 5-slide sample deck (3 with presenter notes)
  produces 12.2 KB single-file HTML with all 16 expected components
  (slide-1 + slide-5 anchors, notes attribute populated, P-key
  handler, arrow nav, @media print, page-break-after, presenter
  panel + clock + next-preview, palette tokens, progress bar, title
  in header, "1 / 5" counter, history.replaceState URL hash sync,
  prefers-reduced-motion).

Domain status: COMPLETE. All 5 planned skills shipped across 4 PRs
(#780 foundation, #793 md-document, #795 md-review, this PR md-slides).
The markdown-html/ domain operationalizes Shihipar's central claim —
markdown collapses past 100 lines; HTML restores density, clarity,
shareability, and lightweight interaction — across all three layout
families (long-form documents, code reviews, slide decks).

https://claude.ai/code/session_01BK2KoQot1U7J5oSosrCQdc
2026-06-03 05:55:58 +00:00