{"id":"plugin-dev-workflow","name":"plugin-dev-workflow","summary":"プラグイン開発ワークフローのガイド — 編集スキル、エージェント、フック、評価フレームワークなど、このリポジトリで。","body":"# Plugin Development Workflow\n\nThis repo is the Elixir/Phoenix Claude Code plugin. When editing plugin\nfiles, follow this workflow to ensure quality.\n\n## Before You Start\n\nRun `make help` to see all available commands:\n\n```bash\nmake eval          # Quick: lint + score changed skills/agents\nmake eval-all      # Full: all 51 skills + 26 agents\nmake eval-fix      # Auto-fix + show failures\nmake test          # 220 pytest tests for eval framework and port tooling\nmake ci            # Full CI pipeline\n```\n\n## Scoring Individual Files (CLI)\n\nIMPORTANT: Always use `-m` module syntax, never run scorer.py directly.\n\n```bash\n# Score ONE skill (use -m, NOT direct file path)\npython3 -m lab.eval.scorer plugins/elixir-phoenix/skills/verify/SKILL.md\n\n# Score ONE skill with pretty output\npython3 -m lab.eval.scorer plugins/elixir-phoenix/skills/verify/SKILL.md --pretty\n\n# Score all skills\npython3 -m lab.eval.scorer --all\n\n# Score ONE agent\npython3 -m lab.eval.agent_scorer plugins/elixir-phoenix/agents/verification-runner.md\n\n# Score all agents\npython3 -m lab.eval.agent_scorer --all\nmake ci            # Full CI pipeline\n```\n\n## When Editing Skills (plugins/elixir-phoenix/skills/*/SKILL.md)\n\n1. **Read CLAUDE.md** conventions (size limits, frontmatter requirements)\n2. Make your changes\n3. Run `make eval` — it auto-detects changed skills and scores them\n4. If FAIL: check the dimension that failed, fix it\n5. Run `make lint` to verify markdown formatting\n6. Commit\n\n**Skill requirements** (eval checks all of these):\n\n- Frontmatter: name, description, effort. Description must start with action verb + include \"Use when...\"\n- Iron Laws section with 1+ numbered items\n- Under 185 lines (command skills) or 150 lines (reference skills)\n- No section exceeds 45 lines\n- All `/phx:` references point to existing skills\n- All `references/*.md` paths exist\n- No dangerous code patterns outside Iron Laws sections\n- Code examples present (1+ fenced code blocks)\n- \"Use when...\" in description (for trigger accuracy)\n\n## When Editing Agents (plugins/elixir-phoenix/agents/*.md)\n\n1. Make your changes\n2. Run `make eval-agents` to score all agents\n3. Agent requirements:\n   - `permissionMode: bypassPermissions` (always — background agents need it)\n   - `disallowedTools: Write, Edit, NotebookEdit` for review/analysis agents\n   - model matches effort: haiku=low, sonnet=medium, opus=high\n   - Under 300 lines (specialist) or 535 lines (orchestrator)\n\n## When Editing Eval Framework (lab/eval/*.py)\n\n1. Make your changes\n2. Run `make test` — all pytest tests must pass\n3. Run `make eval-all` — verify no skills/agents regressed\n4. If adding new matchers: add tests in `lab/eval/tests/test_matchers.py`\n\n## When Editing Hooks (plugins/elixir-phoenix/hooks/scripts/*.sh)\n\n1. Make your changes\n2. Run `make lint` (markdown in hook comments)\n3. Test the hook manually (hooks run on Edit/Write/Bash events)\n4. Check CLAUDE.md hook documentation is still accurate\n\n## Autoresearch (Self-Improvement Loop)\n\nIf `make eval-fix` shows failures, it suggests an autoresearch command:\n\n```bash\n# Copy-paste the suggested command from eval-fix output\nclaude -p 'Run autoresearch. Score all skills...' --allowedTools 'Edit,Read,Write,Bash,Glob,Grep'\n```\n\nThis runs the autoresearch loop: find weakest skill → fix ONE issue → re-score → keep/revert.\n\n## Pre-Commit Checklist\n\nBefore committing any plugin changes:\n\n- [ ] `make lint` passes\n- [ ] `make eval` passes (changed files)\n- [ ] `make test` passes (if eval framework changed)\n- [ ] CHANGELOG.md updated (if user-visible change)\n- [ ] Version bumped in plugin.json (if releasing)\n\n## References\n\n- CLAUDE.md — full conventions, size limits, checklist\n- `lab/eval/` — scoring framework (24 matchers, 8 dimensions)\n- `lab/autoresearch/` — self-improvement loop\n- `lab/findings/interesting.jsonl` — log interesting discoveries here","author":"@oliver-kriska","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/oliver-kriska/claude-elixir-phoenix/tree/main/.claude/skills/plugin-dev-workflow","license":"MIT","category":"coding","lang":"en","tokens":991,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[{"code":"injection.disable-permissions","kind":"injection","where":"SKILL.md:66","excerpt":"bypassPermissions","message":"instructs the agent to disable permission checks","severity":"warn"}],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}