Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude/skills/pair-capability-analyze-debt/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ TECH DEBT ANALYSIS (output-only — no files or issues created):
├── Items Found: [N total]
├── Categories: Code: [N] | Design: [N] | Test: [N] | Docs: [N] | Infra: [N]
├── Severity: High: [N] | Medium: [N] | Low: [N]
└── Promotion: [none | suggested: N items for deliberate /pair-capability-write-issue promotion]
└── Promotion: [none | suggested: N items for deliberate /write-issue promotion]

PRIORITIZED ITEMS:
# | Severity | Category | Impact | Effort | Score | Description | Location
Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pair-capability-assess-ai/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [primary tool + maturity level + additional tools]
├── Proposal: [content rendered for tech-stack.md AI section]
├── Target: adoption/tech/tech-stack.md (AI section)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL]
├── Persist: [caller composes /record-decision(content, target) → ADL]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [pattern name]
├── Proposal: [content rendered for adoption/tech/architecture.md]
├── Target: adoption/tech/architecture.md (full file)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADR]
├── Persist: [caller composes /record-decision(content, target) → ADR]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [key infrastructure choices]
├── Proposal: [content rendered for infrastructure.md]
├── Target: adoption/tech/infrastructure.md (core sections)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADR]
├── Persist: [caller composes /record-decision(content, target) → ADR]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pair-capability-assess-methodology/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [methodology name]
├── Proposal: [content rendered for way-of-working.md methodology section]
├── Target: adoption/tech/way-of-working.md (methodology section)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL]
├── Persist: [caller composes /record-decision(content, target) → ADL]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [platform + logging + tracing + alerting]
├── Proposal: [content rendered for infrastructure.md observability section]
├── Target: adoption/tech/infrastructure.md (observability section)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL]
├── Persist: [caller composes /record-decision(content, target) → ADL]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
4 changes: 2 additions & 2 deletions .claude/skills/pair-capability-assess-pm/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,9 +102,9 @@ ASSESSMENT COMPLETE (output-only for adoption — no files written by this skill
├── Domain: Project Management
├── Path: [Argument Override | Adoption Exists | Full Assessment]
├── Decision: [tool name]
├── Proposal: [content rendered for way-of-working.md PM section | delegated to /pair-capability-setup-pm]
├── Proposal: [content rendered for way-of-working.md PM section | delegated to /setup-pm]
├── Target: adoption/tech/way-of-working.md (PM tool section)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL | delegated to /pair-capability-setup-pm]
├── Persist: [caller composes /record-decision(content, target) → ADL | delegated to /setup-pm]
└── Status: [Proposal ready | Confirmed existing | Delegated]
```

Expand Down
6 changes: 3 additions & 3 deletions .claude/skills/pair-capability-assess-security/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ See [resolution cascade](../../../.pair/knowledge/skill-conventions/resolution-c
### Review Mode

```text
SECURITY REVIEW (composed by /pair-process-review — no files written):
SECURITY REVIEW (composed by /review — no files written):
├── Mode: Review
├── Verdict: [green | yellow | red] — [1-line summary]
├── Findings: [N total — N introduced, N pre-existing]
Expand All @@ -124,7 +124,7 @@ SECURITY AUDIT COMPLETE:
├── Report: [.pair/working/reports/security/<file> — written | N/A — Path B]
├── Proposal: [content rendered for tech/security.md | N/A — Path B, already current]
├── Target: adoption/tech/security.md
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL | N/A]
├── Persist: [caller composes /record-decision(content, target) → ADL | N/A]
└── Status: [Report written | Confirmed existing | Proposal ready]
```

Expand Down Expand Up @@ -159,4 +159,4 @@ See [graceful degradation](../../../.pair/knowledge/skill-conventions/graceful-d
- **Writes exactly one kind of file itself**: the audit report under `.pair/working/reports/security/` (Step 7) — the one exception to the `assess-*` family's usual output-only convention, justified the same way `/pair-capability-design-manual-tests` writes its own suite files: reports are operational artifacts (D14), not adoption content. Adoption content (`tech/security.md`) is never self-written — that always goes through the caller's `/pair-capability-record-decision` composition (Step 8).
- **Idempotent** — see [idempotency convention](../../../.pair/knowledge/skill-conventions/idempotency.md). Audit mode's check: Path B (populated `tech/security.md` + backing decision record) confirms rather than re-running the full OWASP assessment. Review mode is not idempotent in that sense — a fresh verdict is computed every review, against the current diff, by design (findings can change commit to commit).
- **Never scans for secrets**: committed-secret detection is a deterministic, LLM-free CI layer (R6.5) provisioned by `/pair-capability-setup-gates`, not an assessment this skill performs — keeping the "no LLM involved" guarantee real (D24).
- **D22** (1-line verdict + collapsed findings, never a table inline): see ADL [2026-07-18-d22-classification-verdict-collapsed-details.md](../../../.pair/adoption/decision-log/2026-07-18-d22-classification-verdict-collapsed-details.md).
- **D22** (1-line verdict + collapsed findings, never a table inline): a project-level decision record, not part of this portable dataset.
2 changes: 1 addition & 1 deletion .claude/skills/pair-capability-assess-stack/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [technology@version — or full stack summary]
├── Proposal: [content rendered for tech-stack.md — full | affected entry]
├── Target: adoption/tech/tech-stack.md (core sections)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL]
├── Persist: [caller composes /record-decision(content, target) → ADL]
└── Status: [Proposal ready | Confirmed existing | Approved | Rejected]
```

Expand Down
2 changes: 1 addition & 1 deletion .claude/skills/pair-capability-assess-testing/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ ASSESSMENT COMPLETE (output-only — no files written):
├── Decision: [framework vX.Y + coverage tool + pyramid distribution]
├── Proposal: [content rendered for tech-stack.md testing section]
├── Target: adoption/tech/tech-stack.md (Testing section)
├── Persist: [caller composes /pair-capability-record-decision(content, target) → ADL]
├── Persist: [caller composes /record-decision(content, target) → ADL]
└── Status: [Proposal ready | Confirmed existing]
```

Expand Down
8 changes: 4 additions & 4 deletions .claude/skills/pair-capability-checkpoint/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: pair-capability-checkpoint
description: "Writes and resumes a self-contained progress checkpoint (story, branch, tasks done, decisions, remaining todos) so work survives a context reset. Invoke directly to save or resume progress ('save our progress on #313', 'resume story #256'); composed by a future closing phase of /pair-process-implement and a future /pair-capability-publish-pr (planned — #255)."
description: "Writes and resumes a self-contained progress checkpoint (story, branch, tasks done, decisions, remaining todos) so work survives a context reset. Invoke directly to save or resume progress ('save our progress on #313', 'resume story #256'); composed by a future closing phase of /pair-process-implement and a future /publish-pr (planned — #255)."
version: 0.4.1
author: Foomakers
---
Expand Down Expand Up @@ -47,7 +47,7 @@ Write and resume a self-contained progress checkpoint so a fresh session (or a s
3. **Act**: If not (e.g., invoked by a subagent with no prior context), reconstruct from artifacts:
- **Branch**: `git branch --show-current`.
- **Tasks done/pending**: read the story's Task Breakdown checklist (per [way-of-working.md](../../../.pair/adoption/tech/way-of-working.md)), cross-referenced with commits on the branch — the same technique `/pair-process-implement` uses for idempotent resume.
- **Decisions**: scan [adoption/tech/adr/](../../../.pair/adoption/tech/adr/) and [adoption/decision-log/](../../../.pair/adoption/decision-log/) for files touched since the branch diverged from main.
- **Decisions**: scan [adoption/tech/adr/](../../../.pair/adoption/tech/adr) and [adoption/decision-log/](../../../.pair/adoption/decision-log) for files touched since the branch diverged from main.
4. **Verify**: All five state elements resolved. Anything that cannot be reconstructed confidently is marked `[unknown — needs confirmation]` — never guessed.

### Step 4: Detect Existing Checkpoint
Expand Down Expand Up @@ -162,9 +162,9 @@ When composed by a future closing phase of `/pair-process-implement`:
- **Input**: `/pair-process-implement` would invoke `/pair-capability-checkpoint` with `$mode=write` between tasks (or on developer request) to persist progress, `$mode=resume` at Phase 0 when re-invoked on a story that may have been interrupted, and remove the checkpoint on story completion (cleanup).
- **Output**: Write mode's returned text becomes the session's record of state. Resume mode's parsed state lets `/pair-process-implement` skip re-analysis and jump straight to the first pending task.

When composed by a future `/pair-capability-publish-pr` (planned — #255; companion capability from the same epic split):
When composed by a future `/publish-pr` (planned — #255; companion capability from the same epic split):

- **Input**: `/pair-capability-publish-pr` invokes `/pair-capability-checkpoint` with `$mode=write, $persist=false` to obtain a handoff prompt summarizing the story before drafting the PR description.
- **Input**: `/publish-pr` invokes `/pair-capability-checkpoint` with `$mode=write, $persist=false` to obtain a handoff prompt summarizing the story before drafting the PR description.
- **Output**: The returned text (not written to file) is embedded directly into the composer's own output — the composer owns persistence.

When invoked **independently**:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ MANUAL TEST SUITE GENERATED:
├── Files: [N critical path files + README]
├── Tests: [N total (N P0, N P1, N P2)]
├── Categories: [list]
└── Ready for: /pair-capability-execute-manual-tests
└── Ready for: /execute-manual-tests
```

## Composition Interface
Expand Down
14 changes: 7 additions & 7 deletions .claude/skills/pair-capability-grill/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: pair-capability-grill
description: "Interviews one question at a time, always with a recommendation, after exploring the KB/codebase first; sync mode drives systematic AI-human alignment on a story until shared understanding is confirmed. Invoke directly to interview on any topic ('grill me on the requirements'). Composed by /pair-process-refine-story and a future /pair-process-brainstorm (planned — #230). Write-free — returns the synthesis, never writes adoption or issues."
description: "Interviews one question at a time, always with a recommendation, after exploring the KB/codebase first; sync mode drives systematic AI-human alignment on a story until shared understanding is confirmed. Invoke directly to interview on any topic ('grill me on the requirements'). Composed by /pair-process-refine-story and a future /brainstorm (planned — #230). Write-free — returns the synthesis, never writes adoption or issues."
version: 0.4.1
author: Foomakers
---
Expand Down Expand Up @@ -29,7 +29,7 @@ Ask one question at a time, always with a recommended answer, after exploring th

### Interview Mode (default)

Freeform exploration of `$topic`. No fixed checklist — the question queue grows from what Step 1's exploration leaves open and from what answers reveal. Used standalone or composed by `/pair-process-brainstorm` (phase 1, planned — #230) to produce a raw requirements blob.
Freeform exploration of `$topic`. No fixed checklist — the question queue grows from what Step 1's exploration leaves open and from what answers reveal. Used standalone or composed by `/brainstorm` (phase 1, planned — #230) to produce a raw requirements blob.

### Sync Mode

Expand Down Expand Up @@ -97,7 +97,7 @@ Systematic AI↔human alignment on a specific story, covering all six aspects of

### Step 6: Return — Never Write

1. **Act**: Return the synthesis to the caller (composed invocation) or print it in conversation (standalone). **Never** write to adoption files or PM tool issues in either mode — that stays with the composer (`/pair-process-brainstorm`, `/pair-process-refine-story`) or the human.
1. **Act**: Return the synthesis to the caller (composed invocation) or print it in conversation (standalone). **Never** write to adoption files or PM tool issues in either mode — that stays with the composer (`/brainstorm`, `/pair-process-refine-story`) or the human.
2. **Act (standalone, or session interrupted before Step 4's explicit yes)**: Offer an optional handoff file:

> Save this as a handoff file in `.pair/working/`? (y/n)
Expand Down Expand Up @@ -138,10 +138,10 @@ SYNTHESIS:

## Composition Interface

When composed by `/pair-process-brainstorm` (phase 1, planned — #230):
When composed by `/brainstorm` (phase 1, planned — #230):

- **Input**: `$mode` omitted (defaults `interview`); `$topic` from the free theme text or the `$root` issue's body; `$context` carries the issue if `$root` was given.
- **Output**: Returns the raw requirements blob (R3.7). `/pair-process-brainstorm` carries it into phase 2 (domain integration) — grill never touches the PM tool or adoption files itself.
- **Output**: Returns the raw requirements blob (R3.7). `/brainstorm` carries it into phase 2 (domain integration) — grill never touches the PM tool or adoption files itself.

When composed by `/pair-process-refine-story` (phase 0, future extension):

Expand All @@ -158,7 +158,7 @@ When invoked **standalone**:
### Interview Mode (standalone, free topic)

```text
> /pair-capability-grill
> /grill
AI: What's the topic?
Recommendation: none — this is genuinely open, your call.
You: caching strategy for the API layer
Expand Down Expand Up @@ -190,7 +190,7 @@ AI: [continues through Edge Cases, Dependencies, Design]
You: yes, flag that
AI: Do we have shared understanding here? (yes / no)
You: yes
AI: GRILL SESSION COMPLETE — Mode: sync · Coverage: 6/6 · returns alignment synthesis to /pair-process-refine-story
AI: GRILL SESSION COMPLETE — Mode: sync · Coverage: 6/6 · returns alignment synthesis to /refine-story
```

## Edge Cases and Error Handling
Expand Down
14 changes: 7 additions & 7 deletions .claude/skills/pair-capability-map-contexts/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: pair-capability-map-contexts
description: "Maps subdomains to DDD bounded contexts and derives the integration pattern between them (integration strength, socio-technical distance, volatility), scoped to items just touched. Composed by /pair-process-refine-story, /pair-process-plan-tasks, a future /pair-process-brainstorm (planned — #230); full-scope re-mapping only via /pair-process-bootstrap."
description: "Maps subdomains to DDD bounded contexts and derives the integration pattern between them (integration strength, socio-technical distance, volatility), scoped to items just touched. Composed by /pair-process-refine-story, /pair-process-plan-tasks, a future /brainstorm (planned — #230); full-scope re-mapping only via /pair-process-bootstrap."
version: 0.4.1
author: Foomakers
---
Expand All @@ -17,11 +17,11 @@ Map subdomains to bounded context boundaries and assess each relationship betwee

## Composed Skills

| Caller | When |
| ----------------------------- | --------------------------------------------------------------------------- |
| Caller | When |
| ---------------- | --------------------------------------------------------------------------- |
| `/pair-process-refine-story` | Technical analysis phase — identifies touched contexts/services. |
| `/pair-process-plan-tasks` | Identifies touched contexts/services for the task breakdown. |
| `/brainstorm` | Punctual/technical brainstorm touching one or a few contexts (planned — #230). |
| `/brainstorm` | Punctual/technical brainstorm touching one or a few contexts (planned — #230). |
| `/pair-process-bootstrap` | Initial full-catalog mapping — the only caller allowed `$scope: all`. |

Invocable independently with an explicit `$scope` for ad hoc placement.
Expand All @@ -30,7 +30,7 @@ Invocable independently with an explicit `$scope` for ad hoc placement.

### Step 0: Resolve Scope and DDD Adoption State

1. **Check**: Does [`adoption/tech/boundedcontext/`](../../../.pair/adoption/tech/boundedcontext/) contain `.md` files beyond README.md (DDD already adopted)?
1. **Check**: Does [`adoption/tech/boundedcontext/`](../../../.pair/adoption/tech/boundedcontext) contain `.md` files beyond README.md (DDD already adopted)?
2. **Check**: If not adopted, are subdomains defined ([`adoption/product/subdomain/`](../../../.pair/adoption/product/subdomain) has `.md` files beyond README.md)?
3. **Act**: Resolve the working mode:
- **DDD mode** — bounded context catalog exists, or a subdomain catalog is available to map from.
Expand Down Expand Up @@ -139,7 +139,7 @@ CONTEXT PLACEMENT COMPLETE:
├── Updated: [Y existing files]
├── Relationships: [balanced: A, unbalanced: B, gated: C]
├── Location: adoption/tech/boundedcontext/
└── Next: /pair-process-plan-epics (scoped) or back to the calling process skill
└── Next: /plan-epics (scoped) or back to the calling process skill
```

## Edge Cases and Error Handling
Expand Down Expand Up @@ -167,4 +167,4 @@ See [graceful degradation](../../../.pair/knowledge/skill-conventions/graceful-d
- **Idempotent** — see [idempotency convention](../../../.pair/knowledge/skill-conventions/idempotency.md). This skill's check: detects existing files by filename; only entries inside `$scope` are evaluated for changes.
- The 3-dimension relationship assessment (strength, distance, volatility) is the input to the coupling-balance guideline — see `.pair/knowledge/guidelines/architecture/design-patterns/coupling-balance.md` (introduced by #209); until that guideline lands, apply the heuristics in Step 3 directly.
- Contract-coupled (`contract` strength) relationships are annotated "contract tests expected" — `/pair-capability-design-manual-tests` and story-level validation strategies should pick up the contract/boundary test category for that relationship.
- Migration: this skill was reclassified from a process skill (`pair-process-map-contexts`) to a capability (`pair-capability-map-contexts`) — see [skills-guide.md](../../../.pair/knowledge/skills-guide.md#migration-notes) for the rename and new invocation paths.
- Migration: this skill was reclassified from a process skill (`process/map-contexts`) to a capability (`capability/map-contexts`) — see [skills-guide.md](../../../.pair/knowledge/skills-guide.md#migration-notes) for the rename and new invocation paths.
Loading
Loading