feat(unic-spec-review): scaffold plugin with PRD and ADRs#201
Merged
Conversation
release: sync develop → main
Adds the unic-spec-review plugin: an adversarial reviewer for web specifications across Confluence (pages + comments), Figma (Dev Mode MCP), the live system (Playwright MCP), and the local repo. Findings are Confidence-scored and Six-Hats-tagged; an Approval Loop posts selected Findings back to Confluence. Scaffold only (command-only package.json, command stubs) plus the design artifacts; command/agent logic is pending the PRD. Why now: the design was fully grilled and locked, so the decisions are captured before implementation drifts from them. Includes: - Plugin manifests + root marketplace registry entry - /review-spec, /spec-doctor, /setup-confluence command stubs - PRD (docs/issues/unic-spec-review) published as issue #200 - ADRs 0001-0004: vendoring/self-containment, similarity dedup, Six-Hats lens, inline-anchored comments - CONTEXT.md domain vocabulary; CONTEXT-MAP.md + app:unic-spec-review area label documented Self-containment is a hard requirement: the plugin vendors shared Atlassian code (copy, not cross-import) and ships its own setup command, so it is usable installed alone. See ADR-0001 and root ADR-0025. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The command stubs and the AGENTS.md design heading said "pending PRD", but the PRD (#200) is written. Reword to "pending implementation" and link the PRD, so the stubs reflect that behaviour is defined and only the command body awaits its implementation slice. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR scaffolds the new unic-spec-review Claude Code plugin by adding its marketplace/manifest entries plus initial domain/design documentation (PRD + ADRs + context vocabulary) and command stubs, intentionally deferring implementation.
Changes:
- Register
unic-spec-reviewin the root marketplace registry and context map. - Add the initial plugin skeleton (
.claude-plugin/*,commands/*,package.json,CHANGELOG.md,README.md,CONTEXT.md,.gitignore). - Add design docs: plugin-scoped PRD and ADRs describing the self-containment/vendoring approach, dedup strategy, Six-Hats lens, and inline-comment anchoring.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Adds the new plugin workspace importer and dev dependency link to @unic/release-tools. |
| CONTEXT-MAP.md | Adds unic-spec-review to the repo’s bounded-context index and updates plugin relationship notes. |
| apps/claude-code/unic-spec-review/README.md | Introduces high-level plugin purpose and scaffold status. |
| apps/claude-code/unic-spec-review/package.json | Adds command-only package metadata and release-tool scripts. |
| apps/claude-code/unic-spec-review/LICENSE | Adds a per-plugin LICENSE file. |
| apps/claude-code/unic-spec-review/docs/issues/unic-spec-review/PRD.md | Adds the plugin PRD with user stories, decisions, and testing intent. |
| apps/claude-code/unic-spec-review/docs/adr/README.md | Adds an index for plugin-scoped ADRs. |
| apps/claude-code/unic-spec-review/docs/adr/0001-vendor-shared-code-for-self-containment.md | Records decision to vendor Atlassian/credential/setup code for self-containment. |
| apps/claude-code/unic-spec-review/docs/adr/0002-dedup-by-similarity-not-marker.md | Records dedup decision (similarity + human tiebreak) and attribution footer contract. |
| apps/claude-code/unic-spec-review/docs/adr/0003-six-hats-lens-over-dimensions.md | Records agent roster structure and Six Thinking Hats integration. |
| apps/claude-code/unic-spec-review/docs/adr/0004-inline-anchored-comments-footer-fallback.md | Records inline-anchor + footer fallback posting strategy. |
| apps/claude-code/unic-spec-review/CONTEXT.md | Adds bounded-context vocabulary for the new plugin. |
| apps/claude-code/unic-spec-review/commands/spec-doctor.md | Adds stub preflight command definition. |
| apps/claude-code/unic-spec-review/commands/setup-confluence.md | Adds stub credential setup command definition. |
| apps/claude-code/unic-spec-review/commands/review-spec.md | Adds stub main command definition and argument hint. |
| apps/claude-code/unic-spec-review/CHANGELOG.md | Adds initial changelog scaffold. |
| apps/claude-code/unic-spec-review/AGENTS.md | Adds in-repo agent guidance and locked design summary for the plugin. |
| apps/claude-code/unic-spec-review/.gitignore | Adds plugin-local ignore rules including .spec-review/ artifacts. |
| apps/claude-code/unic-spec-review/.claude-plugin/plugin.json | Adds the Claude Code plugin manifest and command registrations. |
| apps/claude-code/unic-spec-review/.claude-plugin/marketplace.json | Adds the plugin’s marketplace listing metadata. |
| .claude-plugin/marketplace.json | Registers unic-spec-review in the root marketplace registry. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The new plugin was invisible to CI: it was absent from the paths-filter, the changes-detection outputs, the test job's gating condition, the test matrix, and release.yml's tag list. As a result its tests would never run once they exist, verify:changelog would never run on its PRs, and the release workflow would never auto-tag unic-spec-review@<version>. Add unic-spec-review to all five places. While the plugin is command-only the test/typecheck steps no-op via --if-present; verify:changelog runs now. Why: onboarding a new plugin must wire it into CI/release, or coverage and auto-tagging silently skip it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Replace the ` — ` separators in the Shared vocabulary and Plugin contexts lists with colons, per the org typography rule (no em dash). Supersedes the convention-matching em dash added in b831cb8: the list is now both org-compliant and internally consistent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The diff-based verify:changelog gate requires a CHANGELOG entry matching plugin.json's version (0.1.0) when guarded plugin paths change; the Unreleased-only scaffold failed CI. Add the 0.1.0 section. The version header uses an em-dash date (`## [0.1.0] — 2026-06-05`) because the release tooling mandates it: bump-version generates that exact format and verify-changelog enforces ` — YYYY-MM-DD` on every versioned header. This is the one tooling-required em dash; all prose stays em-dash-free. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Record that CHANGELOG version headers must keep the `## [X.Y.Z] — YYYY-MM-DD` format: pnpm bump generates it and verify:changelog enforces ` — YYYY-MM-DD` on every versioned header. Prevents a well-meaning reformat of the separator from breaking CI and the release flow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Workspace layout tree in AGENTS.md listed only five plugins; add unic-spec-review so the layout matches apps/claude-code/. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Scaffolds the new unic-spec-review plugin: an adversarial reviewer for web specifications across Confluence (pages + comments), Figma (Dev Mode MCP), the live system (Playwright MCP), and the local repo. Findings are Confidence-scored and Six-Hats-tagged; an Approval Loop posts selected Findings back to Confluence.
This PR is scaffold + design only — command/agent logic is intentionally not implemented yet.
Closes nothing; this is the base for the implementation slices.
Included
app:unic-spec-reviewarea label (documented inCONTEXT-MAP.md)/review-spec,/spec-doctor,/setup-confluencecommand stubsdocs/issues/unic-spec-review/(published as unic-spec-review plugin: adversarial review of web specifications #200)CONTEXT.mddomain vocabularyWhy
The design was fully grilled and locked, so the architectural decisions (and their rejected alternatives) are recorded as ADRs and a PRD before implementation drifts from them. Merging the scaffold first gives every implementation slice a clean base that already carries the manifests, design docs, and credential/vendoring contract.
Self-containment is a hard requirement: the plugin vendors shared Atlassian code (copy, not cross-import) and ships its own setup command, so it works installed alone. See ADR-0001 and root ADR-0025.
Follow-up
/to-issues; relabel unic-spec-review plugin: adversarial review of web specifications #200 as the epic (dropready-for-agent).package.jsonis command-only;test/typecheck/tsconfigreturn when the first.mjsis vendored.Refs #200
🤖 Generated with Claude Code