Files
imbad0202__academic-researc…/skills
Edward Cheng-I Wu 6006c5b5fa feat(v3.7.0 Phase 1 MVP): Claude Code plugin packaging — manifest + skills/ symlinks + dual-track install (3 codex rounds, 0 findings) (#68)
* docs(design): add v3.7.0 plugin packaging roadmap

Phase 1 MVP (1-2h): .claude-plugin/plugin.json + marketplace.json + skills/ symlinks
Phase 2 (1-2d): 10 slash commands + 7 agent council members + hooks (codex audit pipeline)
Phase 3 (0.5d): marketplace publish + auto-update guidance + version bump checklist update
Phase 4: traffic monitoring (clones / install ratio post-plugin)

Verified facts via claude-code-guide agent:
- Plugin auto-update: third-party plugins default OFF, user toggles per marketplace
- Platform support: CC CLI / VS Code / JetBrains only — claude.ai web / cowork / API NO
- Codex CLI: incompatible (separate AGENTS.md ecosystem); use academic-research-skills-codex fork
- Min manifest: name + description (+ optional version)

Isolation from concurrent v3.6.7 session: 0 path overlap, fetch-before-push.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(v3.7.0): patch roadmap with v3.6.7-derived updates + verified plugin spec facts

Post-v3.6.7 ship retrospective patch (2026-05-05). Added "Update note" block at top of roadmap that supersedes parts of the original 2026-04-30 draft:

- Verified plugin manifest spec facts (claude-code-guide query 2026-05-05): skills/ auto-discovery confirmed, symlinks resolve transparently per docs, min manifest = name only, marketplace.json shape uses source.{source: directory, path: ...} not plugins[].path.
- Phase 2 hooks must wrap scripts/run_codex_audit.sh (already on main from v3.6.7 Phase 6.1), not reinvent codex audit.
- Phase 2 agent council shrinks 7→3 (synthesis_agent / research_architect_agent / report_compiler_agent) per v3.6.7 Phase 6.7 inversion sweep.
- Phase 2 plugin agent prompts must symlink or single-source from repo agents to avoid Pattern C3 attack surface re-introduction.
- Phase 3 version sweep grows 7→9 categories (.claude-plugin/plugin.json added).
- Bash 4+ hook safety reminder for macOS stock Bash 3.2 users.
- Phase 0 inserted: spec verification + SKILL.md frontmatter check + CI baseline. Done as of this commit.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* feat(v3.7.0 Phase 1 MVP): Claude Code plugin packaging — manifest + skills/ symlinks + dual-track install docs

Phase 1 of plugin packaging roadmap (docs/design/2026-04-30-ars-v3.7.0-plugin-packaging-roadmap.md). Lets users install ARS via `/plugin marketplace add Imbad0202/academic-research-skills` + `/plugin install academic-research-skills` while preserving the existing clone+symlink install path for the 4.3k clone+symlink user base.

What lands:
- .claude-plugin/plugin.json: name, version 3.7.0, description (covers v3.6.7 audit gate + v3.6.8 generator-evaluator contract), author, repo metadata, CC-BY-NC-4.0 license, 9 keywords.
- .claude-plugin/marketplace.json: self-hosted marketplace shape per code.claude.com docs (source.{source: directory, path: .}); supersedes the speculative plugins[].path shape in the original roadmap.
- skills/: relative symlinks pointing to the four sibling skill directories (deep-research, academic-paper, academic-paper-reviewer, academic-pipeline). Plugin loader resolves symlinks transparently per docs; legacy clone+symlink users unchanged.
- docs/SETUP.md + docs/SETUP.zh-TW.md: new "Method 0: Claude Code Plugin (v3.7.0+, recommended)" section with auto-update guidance + platform-scope caveats (CC CLI/IDE only; claude.ai web/Claude for Work/API not supported; Codex CLI uses fork).
- README.md + README.zh-TW.md: top of "Setup & installation" surfaces the one-line plugin install for Claude Code CLI/IDE users.

Verified pre-commit:
- python3 -c "import json; json.load(...)" parses both .claude-plugin/*.json.
- ls -la skills/ shows 4 relative symlinks; readability check on each `<skill>/SKILL.md` resolves OK.
- Repo regression: 742 pytest passed + 3 skipped (Bash 3.2 E2E gate) + 251 unittest = 993 green.
- spec_consistency + version_consistency lint scripts pass.
- No PII / hei-platform / HEEACT references in diff.

Phase 2 (slash commands + agent mirrors + hooks wrapping run_codex_audit.sh) and Phase 3 (marketplace publish + auto-update) ship as separate PRs per roadmap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(v3.7.0 Phase 1): codex review round 1 — 2 P1 + 1 P2 closed

Round 1 trajectory: P1×2 + P2×1 + P3×0 → 0 (target).

Closures (codex empirically validated via `claude plugin validate .`):
- F-001 P1 marketplace_missing_owner: `claude plugin validate .` rejects with `owner: Invalid input: expected object, received undefined`. Earlier claude-code-guide spec query (2026-05-05) didn't surface owner as required. Fix: add top-level `"owner": {"name": "Cheng-I Wu", "url": "https://github.com/Imbad0202"}` per validator.
- F-002 P1 marketplace_invalid_source_shape: `plugins[0].source` is a RELATIVE PATH STRING starting with `./`, not the object shape `{"source": "directory", "path": "."}` that earlier docs query reported. Validator output: `plugins.0.source: Invalid input`. Fix: source → "./".
- F-003 P2 roadmap_documents_invalid_schema: roadmap update note's "Correct shape" block was based on the same erroneous spec. Fix: update note now shows the empirically-validated shape (owner + source as path string), explicitly marks the original Task 1.3 snippet below as obsolete.

References: code.claude.com/docs/en/plugins-reference, code.claude.com/docs/en/plugin-marketplaces, plus empirical `claude plugin validate .` run by codex.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix(v3.7.0 Phase 1): codex review round 2 — 1 P2 closed (validator clean)

Round 2 trajectory: P2×1 → 0.

Closure:
- F-004 P2 plugin_update_command_misuse: docs used `/plugin marketplace update <name>` for manual plugin refresh, but that command only refreshes the marketplace source list — it doesn't update installed plugins. Correct command for refreshing an installed plugin is `/plugin update <name>`. Fix: docs/SETUP.md + docs/SETUP.zh-TW.md + roadmap Task 3.1 + Task 3.2 prose all updated to use `/plugin update` for plugin refresh, with a clarifying parenthetical about the marketplace-update distinction.

Codex empirically validated this round:
- `claude plugin validate .` passes
- `claude plugin validate .claude-plugin/plugin.json` passes
- `claude plugin tag --dry-run .` passes
- 4 symlinks resolve to all SKILL.md files

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 16:52:27 +08:00
..