mirror of
https://github.com/alirezarezvani/claude-skills.git
synced 2026-08-28 04:24:58 +00:00
15 commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
3db7dab15f
|
chore(versioning): unify remaining 20 plugins to 2.9.0
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 |
||
|
|
0f88555485
|
chore(versioning,docs): normalize stale versions to 2.9.0 + refresh counts
Version normalization (scope: only plugins/skills older than 2.7.0): - Bumped 52 plugin.json + 21 SKILL.md `version` fields from pre-2.7.0 values (1.0.0 / 2.0.x / 2.2.x / 2.3.x / 2.4.x / 2.5.x) to 2.9.0. Left 2.7.0+ packages untouched. Tool mirrors (.codex/.gemini/.vibe/ .hermes) excluded. All manifests still pass check_plugin_json --all. Doc count refresh (recomputed raw figures: 338 skills, 16 domains, 62 plugins, 533 Python tools, 676 references): - marketplace.json: both descriptions + metadata.version -> 2.9.0. - Root README: headline, badges (Skills 338, Agents 51+, Commands 87+), intro counts, convert section (338 skills / 9 tools), and the full domain table rebuilt to 16 domains summing to 338 (adds research-ops, business-operations, commercial, compliance-os; corrects product 17, marketing 46, c-level 66, ra-qm 18, finance 4, engineering 51/78). - Fixed stale per-skill README `Version:` lines left inconsistent by the bump (andreessen, c-level-agents, product-team, senior-qa). - Fixed stale domain README footers (product-team 17/17, c-level 66/66, project-management 9/9). - CLAUDE.md scope line, structure tree, highlight, and footer synced to the raw figures. https://claude.ai/code/session_01PUNmQVE4WYvcrzpq2anC3D |
||
|
|
d692bf8dfd
|
Merge remote-tracking branch 'origin/dev' into claude/andreessen-productivity-plugin-PlOzn
# Conflicts: # .claude-plugin/marketplace.json # .gemini/skills-index.json # docs/getting-started.md # docs/index.md # mkdocs.yml |
||
|
|
198c0af789
|
feat(andreessen): add asset templates + worked examples (quality 56.2 -> 65.7)
Genuine, repo-consistent additions that lift the real quality gaps (not doc padding): - assets/forcing_question_worksheet.md — fillable 6-question interrogation - assets/blank_3x5_card.md — blank daily card template - assets/example_market_verdict.md — full worked market-first verdict - assets/example_pmf_check.md — worked before/after PMF check Both worked examples' tool invocations are verified against the actual scripts (MARKET-FIRST-DERISK at composite 6.36; BEFORE-PMF at composite 4.35). SKILL.md Assets section updated to reference all five. Quality scorer: 56.2 -> 65.7 (clears the 60 gate). examples 60->100%, assets 12->60%, practical_examples 40->80%. Audit now a clean PASS on quality alongside structure 91.3/EXCELLENT, scripts 3/3, security 0/0. https://claude.ai/code/session_01SF6MzfjHurZMt5JUFET9h3 |
||
|
|
d26c471c4a
|
chore(andreessen): plugin-audit follow-ups — gemini sync + inner README
Post-merge audit fixes for the andreessen productivity skill: - Add skills/andreessen/README.md (inner skill README). Lifts structure 91.3/EXCELLENT and quality 56.2; the README was the one genuine doc gap vs sibling skills. - Run the gemini cross-platform sync (codex ran at merge time; gemini was missed). Adds the andreessen symlink + index entry and reconciles a pre-existing stale claude-coach entry the generator surfaced. Audit verdict: PASS WITH WARNINGS. Structure 91.3 EXCELLENT, scripts 3/3 PASS, security PASS (0 critical/0 high), marketplace + ecosystem clean. The single warning is the quality scorer's title-case section/frontmatter schema that no Path-B productivity skill uses (andreessen 56.2 vs merged siblings reflect 44.6 / capture 46.4). https://claude.ai/code/session_01SF6MzfjHurZMt5JUFET9h3 |
||
|
|
f4c10330af
|
feat(productivity): add andreessen market-first decision & productivity skill
New productivity/andreessen plugin — a Marc Andreessen-mode operator that pressure-tests ventures/ideas/features/bets through his documented frameworks (market > team > product; product/market fit is the only milestone; bias to build) and runs his 3x5-card + Anti-Todo daily routine. Built as the Andreessen-lens counterpart to a founder-operating-system plugin. Runs on the user-supplied anti-sycophancy operating prompt, preserved verbatim in references/operating_prompt.md (counterargument first, no premise validation, no disclaimers, explicit confidence levels, no capitulation without new evidence). The second emphasis block is operationalized as a posture-mapping table so each instruction changes behavior rather than sitting as decoration. Ships 3 stdlib-only deterministic tools (market_first_evaluator with a hard sub-4 market kill gate, pmf_signal_scorer with the Sean Ellis 40% gate, anti_todo_card enforcing the 3-5 cap), 4 references each citing 5-7 sources with explicit confidence levels on every Andreessen attribution, cs-andreessen agent, /cs:andreessen + /cs:pmf-check commands, and a worked 3x5-card asset. Registered in marketplace.json + .codex skills index (productivity 5 -> 6). .codex review/run/status symlinks reflect the sync generator's standard collision resolution on the current tree. https://claude.ai/code/session_01SF6MzfjHurZMt5JUFET9h3 |
||
|
|
bdc043776c
|
fix(version): productivity/handoff is v2.8.2, not v2.8.1 (collision fix)
v2.8.1 was already taken by the engineering role-skill upgrade (senior-fullstack / senior-frontend / senior-backend with karpathy-coder + Matt Pocock decision engines), released 2026-05-20 — before the handoff PRs even merged. The auto-release workflow created the v2.8.1 tag from that work via CHANGELOG.md parsing. The productivity/handoff skill is the next minor on top of v2.8.1: v2.8.2. Changes: - CHANGELOG.md: prepend a new [2.8.2] entry documenting the handoff skill (PRs #724, #728, #729). The auto-release workflow (.github/workflows/release.yml) will pick up this entry and create the v2.8.2 git tag + GitHub Release on the next push to main. - productivity/handoff/.claude-plugin/plugin.json: 2.8.1 -> 2.8.2 - .claude-plugin/marketplace.json (handoff entry): 2.8.1 -> 2.8.2 - CLAUDE.md: 4 spots bumped to v2.8.2; v2.8.1 references kept where they correctly point to the engineering role-skill release - README.md: Productivity table row ✨v2.8.1 -> ✨v2.8.2 - docs/index.md: description, hero subtitle, "329 Skills" card text - docs/getting-started.md: description meta + FAQ count text - mkdocs.yml: site_description The narrative across all top-level docs now reads correctly: v2.8.0 (bizops + commercial) -> v2.8.1 (engineering role-skills) -> v2.8.2 (productivity/handoff). Verified: - 0 v2.7.5 references remain (earlier typo) - All v2.8.1 references that remain point to engineering role-skills - CHANGELOG topmost entry: [2.8.2] - 2026-05-23 - plugin.json + marketplace.json both at 2.8.2 - mkdocs build clean (will re-verify in CI) https://claude.ai/code/session_01KLhHBAfEDXdQMeRe6G8sRa |
||
|
|
73645c800d
|
docs: bump productivity/handoff to v2.8.1 across all version references
Correct the version number from v2.7.5 to v2.8.1. The handoff skill is a single-skill point release on top of v2.8.0 (business-operations + commercial), not a v2.7.x backport. Version touched in 7 files: - productivity/handoff/.claude-plugin/plugin.json: 2.7.5 -> 2.8.1 - .claude-plugin/marketplace.json (handoff entry): 2.7.5 -> 2.8.1 - CLAUDE.md: Current Scope text, Current Version section header, v2.7.5 highlights -> v2.8.1 highlights, master plan reference, footer Version - README.md: badges (Skills 313->329, Agents 46+->49+, Commands 60+->79+), Productivity row in Skills Overview table (4 -> 5 skills, ✨v2.7.0 -> ✨v2.8.1, add handoff) - docs/index.md: title (313 -> 329), description (add v2.8.1 + v2.8.0 context), hero subtitle, "329 Skills" card text + "49+ Agents" card label - docs/getting-started.md: description (313 -> 329, v2.7.3 -> v2.8.1 context), FAQ "All 313 skills" -> "All 329 skills" - mkdocs.yml: site_description (counts + v2.8.1/v2.8.0 context) Verified: - 0 remaining v2.7.5 references in tracked .md/.json/.yml files - plugin.json + marketplace versions match (2.8.1) - check_plugin_json.py OK on productivity/handoff - mkdocs build clean (21.21s, pre-existing grill-with-docs warnings only) - Codex + Gemini sync clean https://claude.ai/code/session_01KLhHBAfEDXdQMeRe6G8sRa |
||
|
|
1d066e0dec
|
feat(productivity/handoff): v1.1 — SessionEnd hook, self-check script, --refresh flag
Ships the three improvements judged most impactful in v1.1 design review:
1. SessionEnd hook (hooks/session_end.py)
Pairs with SessionStart. When a session ends with no handoff in the
last 30 minutes, prints a one-line reminder. Cannot prompt
interactively or block session end — surfaces text via stdout.
Disable per-session with HANDOFF_SESSIONEND=0. hooks.json updated to
wire both SessionStart and SessionEnd.
2. handoff_self_check.py — fidelity script (~300 LOC, stdlib-only)
Operationalizes handoff_prompt.md. Six checks:
- All 5 sections present
- Goal is non-empty and non-placeholder
- State-of-play bullets reference at least one artifact (commit hash,
PR/issue number, file path, URL)
- Open decisions are present (or explicit "- None.") when git is dirty
or has recent commits
- Skills to use: 3-5 entries, hard cap enforced
- Artifacts contain paths/URLs only, no inline content
Severity: high/medium/low. Strict mode exits 1 only on HIGH findings.
--sample fixture has 3 planted issues (2 high + 1 medium) and exits 1.
Canonical example_handoff.md passes clean (exit 0).
/cs:handoff command updated to run self-check between scaffold-fill
and redaction linter.
3. --refresh flag on handoff_template_generator.py
Reuses the most recent handoff in the configured save location
instead of creating a new file. Falls through to create-if-missing
when no existing handoff is found. Keeps the save location
uncluttered when work continues past the original handoff time;
ensures the SessionStart hook always loads the up-to-date version.
Version bump: 2.7.4 -> 2.7.5. Marketplace description and keywords
updated. README v1.1 section added. SKILL.md gains "Refreshing an
Existing Handoff" and "SessionEnd Reminder" subsections.
Verified:
- All 9 Python files compile clean
- self-check --sample correctly fails (3 findings, exit 1)
- self-check passes clean against assets/example_handoff.md (exit 0)
- --refresh finds the latest /tmp/handoff-*.md and prints its path
- SessionEnd hook prints the reminder when no recent handoff exists
- check_plugin_json.py + marketplace.json + hooks.json all parse
- Plugin audit re-run: structure 84.2 -> 86.0, quality 62.2 -> 63.0,
security PASS (0 critical, 0 high)
- Codex + Gemini sync re-ran clean
https://claude.ai/code/session_01KLhHBAfEDXdQMeRe6G8sRa
|
||
|
|
5f85d59ba4
|
chore(productivity/handoff): apply plugin-audit fixes (structure 73->84, quality 54->62)
Auto-fixes from the 8-phase plugin audit: - Drop `from __future__ import annotations` from all 7 Python files. The validator flagged it as an "external import" (false positive — it's stdlib). Type hints already use 3.10+ syntax (`Path | None`, `dict[str, Any]`), so the import was redundant. - Add `assets/example_handoff.md` — complete worked example of the 5-section output. Lifts quality scorer's "practical_examples" and "assets_existence" dimensions. - Add skill-level `README.md` (in addition to existing plugin-level one) pointing at SKILL.md, scripts, references, and assets. Closes the scorer's "readme_existence" warning. - Extend SKILL.md from 90 -> 178 lines: add `## Examples` (4 scenarios) and `## Usage` (command-to-step table). Clears the validator's "SKILL.md too short" error and lifts the scorer's documentation depth. - Sync Codex + Gemini indexes (auto-regenerated by the sync scripts). Audit results after fixes: Phase 2 (structure): 73.0 -> 84.2 (GOOD, threshold 75) Phase 3 (quality): 53.9 -> 62.2 (C, sibling capture scores 46.4) Phase 5 (security): 0 critical, 0 high (PASS) All 6 scripts pass --help and --sample. End-to-end smoke test re-run clean: template generator writes, hook surfaces, linter blocks planted secrets in strict mode. Verdict: PASS WITH WARNINGS (warnings are validator quirks — sibling `config_loader` import flagged as external, same way `capture` and `reflect` get flagged). https://claude.ai/code/session_01KLhHBAfEDXdQMeRe6G8sRa |
||
|
|
87fb428ead
|
feat(productivity): add handoff skill (Matt Pocock-inspired) with first-run setup, redaction enforcement, SessionStart auto-load
Ships the 5 must-haves for a handoff skill to fulfill its purpose: 1. SessionStart hook auto-loads the latest handoff (hooks/session_start.py). Wrapped in <handoff_from_previous_session> tags so the next agent reads it as data, not instructions. Disable per-session via HANDOFF_SESSIONSTART=0. 2. First-run setup with explicit save-location choice (no pre-selected default). 5 core questions: save location, retention, redaction strictness, git context, recommender scope. Prompt-once-then-default model — declined setup leaves a sentinel so the prompt never re-appears. 3. Mandatory checklist for the agent (references/handoff_prompt.md) — 7 steps forcing topic-by-topic classification (State / Decision / drop) instead of free-handing prose. 4. Redaction linter (scripts/redaction_linter.py) — 17 stdlib regex patterns covering AWS/GitHub/OpenAI/Anthropic/Slack/Stripe keys, JWT, private-key blocks, env-style secret assignments, DB connection strings with creds, bearer tokens, URL token params, email, phone. Inline whitelist marker for true false positives. Strict/warn/off modes. 5. mtime-guarded cleanup (scripts/cleanup.py) — never deletes a handoff the user edited as a working surface. Wrapper layout matches productivity/capture and productivity/reflect: SKILL.md preserves Matt's seven sentences verbatim, surrounded by invocation triggers, output path discipline, 5-section template, and an anti-patterns block. Plus cs-handoff-author agent, /cs:handoff and /cs:handoff-setup commands, 5 reference docs (each citing 5-6 sources), 6 stdlib-only scripts (all pass --help and --sample). Coexists with engineering/handoff/ (code/PR-focused, no setup, no redaction enforcement, no SessionStart hook). Both shipped in marketplace.json. Codex slug collision: the productivity variant wins the .codex/skills/handoff symlink because it's the more general-purpose version; both remain in .codex/skills-index.json. Credit to Matt Pocock surfaces in README + SKILL.md footer + scaffold footer, not as a manifest attribution block (cleaner plugin.json). Verified: - All 6 Python tools pass --help and --sample - redaction_linter --sample finds 8 planted secrets, exits 1 (strict) - SessionStart hook smoke-tested end-to-end against a real scaffold - check_plugin_json.py --all clean (0 failures across all plugins) - sync-codex-skills.py re-ran clean (productivity: 4 -> 5) https://claude.ai/code/session_01KLhHBAfEDXdQMeRe6G8sRa |
||
|
|
6e45e578b5
|
release(v2.7.0): version bumps + CHANGELOG + plugin.json schema doc
Final polish for v2.7.0 release. Changes: - All 12 v2 plugin.json files bumped 1.0.0 → 2.7.0 (release alignment) - CHANGELOG.md: new v2.7.0 section documenting the 13 skills, 3 new domain folders, marketplace + codex sync, Path-B convention, and 8-phase audit verification results - CLAUDE.md: 'Current Version' bumped 2.6.1 → 2.7.0 with v2.7.0 highlights block (13 skills, Path-B pattern, verification summary) - CLAUDE.md: ClawHub plugin.json schema clarified — `source` and `attribution` formally accepted as approved extension fields (consistent with existing pattern across 13 new v2 skills + 3 engineering Matt-Pocock-derivative plugins). Stripped at ClawHub-publish time if/when stripping pipeline lands. - CLAUDE.md: ClawHub rule #6 version reference bumped 2.2.0+ → 2.7.0+ Audit verification before release: - 39/39 scripts pass --help across all 13 v2 skills - Spot-check audit (pulse/litreview/notebooklm): all 86.4/GOOD structure, 3/3 scripts, 0 critical/high security findings - Bulk audit (9 remaining skills): all 79.5-86.4 structure, 0 critical/high security findings (1 false positive in syllabus: hardcoded user-facing error message string contains 'npm install docx' — not runtime install) - Cross-skill consistency: 7/7 research-pack siblings carry the Agent Integrity Rules block; orchestrator disambiguation present in 5 places https://claude.ai/code/session_01FEUmeuYhmnxVFq7EZM8ZSw |
||
|
|
7bdc98e517
|
feat(productivity): reflect skill — Path-B light-prompt-flow sibling of capture
Slice 8: productivity light-prompt-flow sibling. Same shape as capture (11 files, max-1-question intake, fast-to-action), different mode — capture organizes external dumps; reflect re-examines internal conversation state. After this merges: 10 of 13 v2 megaprompts shipped. SOURCE SPEC megaprompts/02-reflect-megaprompt.md (PR #657). WHAT THE SKILL DOES Mid-conversation reflection. Pauses execution, re-reads the FULL conversation from original goal forward (not just recent turns), runs the 5-dimension analysis framework: - Macro Perspective (original goal vs current; drift detection) - Gap Analysis (assumptions / stakeholders / constraints / alternatives / external factors) - Reflective Inquiry (right problem? simpler path? harder valuable path avoided?) - Bias Check (confirmation / sunk cost / anchoring / complexity / recency — each with recognition cues) - Contextual Alignment (does direction serve actual goals + best use of time + external factors) Delivers flowing prose (NO headers, NO bullets). Ends with mandatory directional recommendation: Continue / Pivot to {X} / Pause for {Q}. KEY PATH-B PRESERVED ELEMENTS - Re-read FULL conversation from original goal (not just recent turns) — the discipline that distinguishes real reflection from local summary - Halt-current-thread stop directive (reflection is a pause, not a side-quest) - Honest-output discipline: NO manufactured problems when path is solid; NO vague reassurance ("looks good!") instead of specific reasoning - 5-dimension framework preserved verbatim - 5 biases preserved (confirmation, sunk cost, anchoring, complexity, recency) with recognition cues - Flowing prose enforced (no headers, no bullets in body) - Closing recommendation mandatory (Continue / Pivot to X / Pause for Q) - Low-intake: max 1 optional clarifier (only when context is thin); default to no questions - No name references (generic second-person throughout) - Implicit triggers OFFER reflection, never auto-invoke (10+ detail turns / frustration / dead-ends → ask user if they want to step back, don't unilaterally run) PURE-REASONING SKILL No external APIs. No DOCX generation. No file-system writes beyond audit. Most portable v2 skill — works in Claude Code CLI + Claude.ai web natively, no MCP dependencies, no Node.js, no Consensus account required. REPO STRUCTURE (mirrors capture 1:1) productivity/reflect/ ├── .claude-plugin/plugin.json ├── README.md ├── agents/cs-reflect.md ← reflection persona, honest-output enforcer ├── commands/cs-reflect.md ← /cs:reflect (or auto-triggers on phrases) └── skills/reflect/ ├── SKILL.md ├── references/ │ ├── cognitive_bias_canon.md ← 5 biases + recognition cues │ (7 sources: Tversky/Kahneman, │ Wason, Arkes/Blumer, │ Russo/Schoemaker, Tetlock, │ Karpathy) │ ├── honest_output_discipline.md ← anti-manufactured-problems │ (7 sources: Yegge, Gawande, │ Deming, Russell, Kim Scott, │ Bret Victor, skill spec) │ └── conversation_reflection_practice.md ← Schön reflective practice │ (7 sources: Schön 1983 + 1987, │ Argyris/Schön, Kolb, Polanyi, │ Kahneman/Tversky, Victor) └── scripts/ ├── bias_pattern_detector.py ← stdlib: regex scan for 5-bias │ signal patterns ├── conversation_depth_analyzer.py ← stdlib: turn count + implicit │ trigger signal detection └── directional_recommendation_validator.py ← stdlib: verify output ends with Continue/Pivot/Pause + specific evidence + flowing prose 11 files, 1,554 lines. Comparable to capture (1,560 lines). VERIFIED CLEAN All 3 scripts pass smoke tests: - bias_pattern_detector --sample (notification system + sunk cost + anchoring + complexity scenario): correctly detects 3 biases (sunk_cost via "we've invested", anchoring via "sticking with", complexity via 9 "what about X" hits). Correctly clears confirmation + recency (no strong signals). - conversation_depth_analyzer --sample (19-turn debugging conversation with stuck-ness markers): correctly verdicts OFFER_REFLECT based on frustration (8 hits) + dead-ends (4 hits). Note: "skill should OFFER reflection, not auto-invoke" — honors design intent. - directional_recommendation_validator --sample-pass (honest validation output with 16 specific-evidence references): PASS 6/6. - directional_recommendation_validator --sample-fail (vague reassurance with bullets, no recommendation, no evidence): FAIL with 4 specific issues caught (missing closing recommendation, 2 vague phrases, 3 bullets, 0 specific-evidence refs). All 3 with --output json: valid JSON. plugin.json validates. VERTICAL-SLICE STATUS ✓ Slice 1: capture (PR #659) ✓ Slice 2: pulse (PR #660) ✓ Slice 3: email pair (PR #661) ✓ Slice 4: landing (PR #662) ✓ Slice 5 batch 1: litreview (PR #663) ✓ Slice 5 batch 2: grants + dossier (PR #664) ✓ Slice 5 batch 3: patent + syllabus (PR #666) ✓ Cleanup PR: move pulse + capture (PR #667) ✓ Slice 8: reflect (this PR) ☐ Slice 6: notebooklm (browser-automation, last shape) ☐ Slice 7: 13-research orchestrator + autoresearch-agent reconciliation 10 of 13 v2 megaprompts shipped after this merge. 3 remaining: notebooklm (browser-automation), 13-research (orchestrator), then v2 is complete. NOT DONE IN THIS PR (intentional) - .claude-plugin/marketplace.json not updated (separate concern; done after all 13 ship) - .codex/skills/reflect symlink not added (auto-sync workflow handles on merge per existing pattern) https://claude.ai/code/session_01FEUmeuYhmnxVFq7EZM8ZSw |
||
|
|
6d9630f83c
|
chore(cleanup): move pulse + capture to proper domain folders
Surgical move PR — resolves the two domain warts accumulated during
the v2 megaprompt build sweep:
engineering/pulse/ → research/pulse/ (research-pack — pulse is
the first research skill;
now joins litreview, grants,
dossier, patent, syllabus)
engineering/capture/ → productivity/capture/ (productivity — capture
is brain-dump organizer,
not engineering tooling)
WHY THIS PR
When Slice 1 (capture) shipped in PR #659, the productivity/ domain
folder didn't yet exist. When Slice 2 (pulse) shipped in PR #660, the
research/ folder didn't yet exist either. Both were placed in
engineering/ as the catch-all.
After Slices 3-5 established the productivity/, marketing/, and
research/ top-level domain folders, those two early skills were left
in engineering/ as warts. This PR resolves them BEFORE Slice 7
(13-research orchestrator) so the orchestrator can reference
research/pulse/ as its routing target without further path churn.
WHAT MOVED
Two directories moved via `git mv` (preserves rename history):
- engineering/pulse → research/pulse (11 files)
- engineering/capture → productivity/capture (11 files)
INTERNAL REFERENCES UPDATED
Inside the moved directories:
- .claude-plugin/plugin.json homepage URLs (engineering/X → new path)
- agents/cs-*.md `skills:` frontmatter field
CROSS-SKILL REFERENCES UPDATED
6 external files reference pulse and/or capture as sibling skills.
All updated via sed:
productivity/email/agents/cs-inbox-setup.md (capture ref)
productivity/email/agents/cs-inbox-triage.md (pulse + capture refs)
research/grants/agents/cs-grants.md (pulse ref)
research/litreview/agents/cs-litreview.md (pulse ref + stale
"will move in cleanup
PR" caveat removed)
research/dossier/agents/cs-dossier.md (pulse ref)
marketing/landing/agents/cs-landing.md (pulse + capture refs)
CODEX SYMLINKS RE-POINTED
.codex/skills/{capture,pulse} symlinks updated to point at new
locations. Verified resolution to SKILL.md files works.
.codex/skills-index.json still references the old paths — this file
is auto-regenerated by the codex-sync workflow on every merge to dev
(prior commits:
|
||
|
|
a2e9e48eb2
|
feat(productivity): email pair (inbox-setup + inbox-triage) — Path-B workflow-pair slice
Slice 3 of 13: workflow-pair shape. Validates the Path-B conversion pattern for two coupled skills sharing a strict 7-file KB contract. Also introduces the productivity/ domain folder per the navigation-map distinction in CLAUDE.md (engineering/ = software-engineering scope; productivity/ = generic productivity workflows). DOMAIN FOLDER DECISION CLAUDE.md defines engineering/ as "Engineering (POWERFUL) — Agent design, RAG, MCP, CI/CD, database, observability." Email triage is generic productivity, not software engineering. New folder: productivity/. Capture (Slice 1, merged in PR #659) was placed under engineering/ before this distinction was sharpened. It will move to productivity/ in a separate cleanup PR — moving a merged plugin in this slice would risk breaking anyone who installed it from engineering/capture/. Future productivity slices (02-reflect) will go under productivity/ from the start. SOURCE SPECS - megaprompts/06-inbox-setup-megaprompt.md (PR #657) - megaprompts/07-inbox-triage-megaprompt.md (PR #657) The megaprompts are canonical; these plugins are working implementations. PR #657's cross-skill consistency audit verified the 7 KB filenames align verbatim between the two megaprompts. This slice preserves that alignment. WHAT THE PAIR DOES Two coupled skills sharing a 7-file KB at ${WORKSPACE}/Email/: inbox-setup (run once): Interactive 8-section interview (~25-31 grill-me questions) → writes 7 KB files (taxonomy, patterns, evaluation-framework, rate-card, blocklist, tracker, triage-log/). inbox-triage (run recurringly): Light-intake (max 2 optional override questions). Reads 7 KB files, classifies recent emails, researches new senders, generates recommendations (TAKE IT / WORTH / PASS / FLAG), drafts replies (NEVER SENDS), delivers report, updates blocklist + tracker, writes per-run log. 10 execution steps. PATH-B CONVERSION DISCIPLINE - Both megaprompts' frontmatter descriptions preserved verbatim. - Both workflow structures preserved 1:1 in respective SKILL.md files. - All 8 setup sections preserved verbatim with per-question structure (S{n}.Q{m}) + "why I'm asking" rationale. - All 10 triage steps preserved verbatim. - DRAFTS-ONLY rule preserved + amplified (stated in SKILL.md, agent, command, AND enforced by draft_safety_validator.py). - Skip-logic preserved (S4 conditional on S1 surfacing opportunities). - 7-file KB contract referenced verbatim in both directions. REPO STRUCTURE — MULTI-SKILL LAYOUT (CLAUDE.md plugin-schema rule) productivity/email/ ├── .claude-plugin/plugin.json ← skills: ["./skills/inbox-setup", "./skills/inbox-triage"] ├── README.md ← pair overview + 7-file contract diagram ├── agents/ │ ├── cs-inbox-setup.md ← interview persona │ └── cs-inbox-triage.md ← recurring-run persona, DRAFTS-ONLY enforcer ├── commands/ │ ├── cs-inbox-setup.md │ └── cs-inbox-triage.md └── skills/ ├── inbox-setup/ │ ├── SKILL.md ← 8 sections, 25-31 Q discipline │ ├── references/ │ │ ├── kb_file_contract.md ← write-side spec │ │ ├── grill_me_section_walk.md ← discipline + skip-logic │ │ └── voice_calibration.md ← sample-extraction theory + 7 sources │ └── scripts/ │ ├── kb_validator.py ← stdlib: 7-file contract check │ ├── section_progress_tracker.py ← stdlib: 8-section walk state │ └── voice_sample_analyzer.py ← stdlib: pattern extraction └── inbox-triage/ ├── SKILL.md ← 10 steps + DRAFTS-ONLY rule ├── references/ │ ├── kb_file_contract.md ← read-side spec (mirror) │ ├── triage_decision_framework.md ← TAKE/WORTH/PASS/FLAG + 7 sources │ └── drafts_only_safety.md ← NEVER-SEND canon + 7 sources └── scripts/ ├── kb_reader.py ← stdlib: parsed KB load + fail-fast ├── search_window_calculator.py ← stdlib: cadence → window └── draft_safety_validator.py ← stdlib: post-run NEVER-SEND check 20 files, 3,710 lines. Roughly 2x a single-skill slice (capture: 1,560, pulse: 1,643), appropriate for two coupled skills. VERIFIED CLEAN Smoke tests on all 6 scripts: - kb_validator.py: 15/15 PASS on sample (4 core files + h1s + sections + conditional file expectations + triage-log/ dir) - section_progress_tracker.py: full lifecycle (start → record_q → record_ section_done → record_skip → status). Active section advances correctly past S4 skip. - voice_sample_analyzer.py: 5 samples → register/length/hedging/I-vs-We verdicts + opening + sign-off pattern extraction + email-patterns.md output block generation. - kb_reader.py: reads 5/6 sample files (rate-card.md correctly absent), PASS verdict, structured parsing. - search_window_calculator.py: 2x-daily + 14:00 → 9h lookback, window_start 05:00, run_label "Afternoon". Provides Gmail/Outlook/IMAP query templates. - draft_safety_validator.py: PASS on clean log; FAIL on log with `gmail.users.messages.send` (caught by 2 patterns — defense in depth). Action-required guidance fires. CROSS-SKILL CONTRACT ALIGNMENT (PR #657 audit verbatim alignment preserved) Each of the 7 KB filenames referenced multiple times on both sides: email-taxonomy.md: setup=5 triage=9 email-patterns.md: setup=4 triage=8 evaluation-framework: setup=5 triage=7 rate-card.md: setup=5 triage=4 blocklist.md: setup=4 triage=6 tracker.md: setup=4 triage=7 triage-log: setup=6 triage=7 VERTICAL-SLICE STATUS ✓ Slice 1: capture (light prompt-flow, PR #659 merged) ✓ Slice 2: pulse (research-pack, PR #660 merged) ✓ Slice 3: email-pair (workflow-pair — this PR; introduces productivity/) ☐ Slice 4: generator (04-landing) — validates Next.js code template emission ☐ Slice 5: orchestrator/router (13-research) — must reconcile with existing engineering/autoresearch-agent/ After Slice 4 validates the generator shape, only the orchestrator shape remains to be validated. The 6 remaining research-pack skills (litreview, grants, syllabus, patent, dossier, notebooklm) and 02-reflect can then be batched in a single PR each. NOT DONE IN THIS PR (intentional) - .claude-plugin/marketplace.json not updated (separate concern; done after all 13 ship) - .codex/skills/inbox-setup + .codex/skills/inbox-triage symlinks not added (auto-sync workflow handles on merge) - engineering/capture/ NOT moved to productivity/capture/ (would break anyone who installed from current path; address in separate cleanup PR) https://claude.ai/code/session_01FEUmeuYhmnxVFq7EZM8ZSw |