Help us improve
Share bugs, ideas, or general feedback.
From spec-team
Resolve divergence between collaborators via a consensus workflow. Reads open/proposed divergences from DIVERGENCES.md. A proposer submits a resolution, other parties approve or reject, and the proposer finalizes after consensus. THESIS.md is only updated at finalization time.
npx claudepluginhub surebeli/specteam --plugin spec-teamHow this skill is triggered — by the user, by Claude, or both
Slash command
/spec-team:spec-alignThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Facilitate convergence on specific divergences. Consensus flow: **Propose → Review → Lead Finalize**.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
Facilitate convergence on specific divergences. Consensus flow: Propose → Review → Lead Finalize.
proposedresolved$ARGUMENTS: Required. Can optionally start with --dry-run, followed by one of:
D-{N} — resolve a specific divergence by ID (e.g. D-002){topic keyword} — fuzzy match against divergence titles in DIVERGENCES.mdall — iterate through all actionable divergences (open + proposed awaiting current user)git config spec.member-code to determine current identity ({me}). Apply identity guard.git status and display the result..spec/COLLABORATORS.md..spec/THESIS.md (current North Star)..spec/DIVERGENCES.md.
✅ No actionable divergences. Run /spec-review first to re-analyze.
Stop.{me} can do:
open → {me} can propose a resolution (Mode A)proposed by someone else, awaiting {me} → {me} can approve/reject (Mode B)proposed by {me}, awaiting other party → inform and skip (or allow withdrawal)resolved → skip$ARGUMENTS against actionable items:
all → queue all actionable items: Mode B items first (pending approvals), then Mode A items (open).D-{N} → select that specific divergence.open)Read the relevant collaborator documents under .spec/design/ for current content.
Output:
[Propose Resolution — {D-N}: {title}]
Divergence summary (from DIVERGENCES.md):
Current positions comparison:
| {code-1} | {code-2} | |
|---|---|---|
| Position | {summary from design/{code-1}/...} | {summary from design/{code-2}/...} |
| Advantage | {advantage} | {advantage} |
| Risk | {risk} | {risk} |
| THESIS alignment | {assessment} | {assessment} |
AI recommended resolution:
{Merged or best-choice resolution with reasoning based on THESIS}
Please choose your proposal:
Stop and wait for the user to reply.
After user chooses (skip option 5 to next):
.spec/DIVERGENCES.md — change status from open to proposed:
### D-{N}: {title}
**Status**: `proposed` 🟡
**Parties**: {code-1}, {code-2}, {others}
**Nature**: {classification}
**Priority**: {priority}
**Found at**: review @ `{original_commit}` ({date})
**Proposer (Lead)**: {me}
**Proposed at**: align @ `{current_commit}` ({date})
**Proposed decision**: {chosen resolution summary}
**Reasoning**: {reasoning}
**Votes**:
- {me}: `propose`
_Awaiting reviews from others. The Proposer will finalize when consensus is reached._
"[SpecTeam] align — D-{N}: {title} proposed by {me}, awaiting {other} confirmation"(Note: If --dry-run was passed, skip updating files and committing. Just output the proposed file changes.)
Output: "✅ Proposal submitted. {other_party} can run /spec-align D-{N} after their next pull to confirm or reject."
proposed, awaiting {me})Read the relevant collaborator documents and the proposal details from DIVERGENCES.md.
Output:
[Confirm Resolution — {D-N}: {title}]
Original divergence:
{proposer}'s proposal:
Decision: {proposed resolution} Reasoning: {reasoning} Proposed at: {date}
Original positions comparison:
| {code-1} | {code-2} | |
|---|---|---|
| Position | {summary} | {summary} |
| THESIS alignment | {assessment} | {assessment} |
Please choose:
Stop and wait for the user to reply.
Based on user's choice:
Option 1 — Approve:
{me}'s Approve vote to the "Votes" section for this proposal in DIVERGENCES.md.proposed."[SpecTeam] align — D-{N}: {title} approved by {me}, awaiting Lead's final confirmation""✅ Approval recorded. The original proposer (Lead) will finalize the resolution once consensus is reached."Option 2 — Reject:
open, append rejection note:
### D-{N}: {title}
**Status**: `open` 🔴
**Parties**: {code-1}, {code-2}
...original fields...
**Proposal history**:
- [{date}] {proposer} proposed: {resolution} — ❌ Rejected by {me}, reason: {rejection reason}
"[SpecTeam] align — D-{N}: {title} proposal rejected by {me}"Option 3 — Modify and counter-propose:
proposed but change proposer to {me}:
**Proposer**: {me}
**Proposed at**: align @ `{current_commit}` ({date})
**Proposed decision**: {modified resolution}
**Reasoning**: {new reasoning}
_Awaiting review from {original_proposer}. The proposer who owns the active proposal will finalize after consensus is reached._
**Proposal history**:
- [{date}] {original_proposer} proposed: {original resolution} — 🔄 Modified by {me}
"[SpecTeam] align — D-{N}: {title} modified proposal by {me}, awaiting {original_proposer}"{me} (Lead), managing consensusRead the current Votes from DIVERGENCES.md.
Output:
⏳ D-{N}: {title} — You are the Proposer (Lead).
Proposed decision: {summary}
Proposed at: {date}
Current Votes:
{list of votes}
Options:
1. ✅ Finalize and Resolve (Consensus reached)
2. ❌ Withdraw proposal (revert to open)
3. ⏭ Skip for now
If user chooses to Finalize and Resolve (Option 1):
Sub-step A — Generate Action Items (before writing to files):
Read each involved party's current documents under .spec/design/. For each party:
update can verify automatically.Output to the user:
## Source Document Action Items — D-{N}: {title}
| Collaborator | Source file | Status |
|--------------|-------------|--------|
| {code-1} | `./design/api.md` | ⏳ Pending update |
| {code-2} | `./design/api-proposal.md` | ⏳ Pending update |
---
##### [{code-1}] Change Instructions
**Background**: {what the disagreement was}
**Decision**: {clear, unambiguous statement of what was decided}
**Rationale**: {reasoning}
**File**: `./design/api.md`
**Required changes**:
- {concrete item}
**Acceptance criterion**: {one-sentence check}
---
After completing your changes, run /spec-update to sync and auto-verify.
Sub-step B — Write to files:
Create .spec/decisions/D-{N}.md — write the full decision + per-party instruction blocks here:
# D-{N}: {title} — Change Instructions
**Decision**: {resolution summary}
**Proposer (Lead)**: {me} | **Resolved at**: {date}
---
## [{code-1}] Change Instructions
...
If a party needs no changes → omit their block entirely.
Update DIVERGENCES.md — move from Open to Resolved. Keep this entry lean:
### D-{N}: {title} ✅
**Status**: `resolved`
**Parties**: {code-1}, {code-2}, {others}
**Resolved at**: align @ `{current_commit}` ({date})
**Decision**: {resolution summary}
**Rationale**: {reasoning}
**Final Votes**: {summary of votes}
**Change Instructions**: see `.spec/decisions/D-{N}.md`
#### Source Document Action Items
| Collaborator | Source file | Status |
|--------------|-------------|--------|
| {code-1} | `{source path}` | ⏳ Pending update |
| {code-2} | `{source path}` | ✅ No changes needed |
Now update .spec/THESIS.md Decision Log:
## Decision Log
- [{date}] **D-{N}: {title}**: {resolution summary}.
- Proposed and finalized by: {me}
- Rationale: {reasoning}
Archive superseded proposals if applicable.
Update .spec/SIGNALS.md — remove blocker, add resolved entry.
Commit: "[SpecTeam] align — D-{N}: {title} finalized and resolved by Lead ({me})"
If user chooses to withdraw (Option 2):
open in DIVERGENCES.md, clear votes, append withdrawal note."[SpecTeam] align — D-{N}: {title} proposal withdrawn by {me}"$ARGUMENTS is all and more actionable items remain → go back to Step 3 for the next one.## Alignment Summary
Processed this session:
- 🟡 D-{N}: {title} — proposed, awaiting {other} confirmation
- ✅ D-{N}: {title} — finalized and resolved
- ❌ D-{N}: {title} — rejected, reverted to open
- ⏭ D-{N}: {title} — skipped
Remaining:
- open: {count}
- proposed (awaiting others): {count}