askill
c3-provision

c3-provisionSafety 100Repository

Documents architecture WITHOUT implementation. Creates ADR and component docs with status: provisioned. MUST use this skill when user wants to DESIGN or PLAN without implementing: - "provision X", "provision a component", "provision new service" - "design the architecture for X", "design a component" - "plan X", "plan a new service", "plan the architecture" - "document X architecture", "architect X" - "envision X", "sketch X architecture" DO NOT use this skill if prompt contains: - "pattern", "patterns" → route to c3-ref - "ref", "refs" → route to c3-ref - "convention", "standard" → route to c3-ref Key indicator: User wants documentation/design output, NOT code changes. Requires .c3/ to exist. Creates ADR with status: provisioned. For implementation requests, route to c3-alter.

7 stars
1.2k downloads
Updated 1/29/2026

Package Files

Loading files...
SKILL.md

C3 Provision - Architecture Without Implementation

Document architecture before code exists. ADR captures design decision, component docs created with status: provisioned.

Relationship to c3-orchestrator agent: This skill uses orchestrator analysis stages but stops after ADR acceptance. No c3-dev execution.

REQUIRED: Load References

Before proceeding, use Glob to find and Read these files:

  1. **/references/skill-harness.md - Red flags and complexity rules
  2. **/references/layer-navigation.md - How to traverse C3 docs
  3. **/references/adr-template.md - ADR structure
  4. **/references/component-lifecycle.md - Provisioned status model

Core Workflow

User Request ("provision X", "design X", "plan X")
    ↓
Stage 1: Intent Clarification (Socratic)
    ↓
Stage 2: Current State (analyze existing architecture)
    ↓
Stage 3: Scope Impact (what containers/components affected)
    ↓
Stage 4: Create ADR (status: proposed)
    ↓
Stage 4b: User Accepts ADR
    ↓
Stage 5: Create Provisioned Docs
    ├── New component: .c3/provisioned/c3-X/c3-xxx.md
    └── Update to existing: .c3/provisioned/c3-X/c3-xxx.md (with supersedes:)
    ↓
Stage 6: Update ADR status: provisioned
    ↓
DONE (no execution phase)

Progress Checklist

Copy and track as you work:

Provision Progress:
- [ ] Stage 1: Intent clarified (what to provision, why)
- [ ] Stage 2: Current state documented
- [ ] Stage 3: Scope assessed (affected containers/components)
- [ ] Stage 4: ADR created (status: proposed)
- [ ] Stage 4b: ADR accepted by user
- [ ] Stage 5: Provisioned docs created
- [ ] Stage 6: ADR status updated to provisioned

Stage 1: Intent

StepAction
AnalyzeWhat component/feature? New or update? Why provision vs implement?
AskUse AskUserQuestion: What problem does this solve? Scope?
SynthesizeIntent: Provision [component] Goal: [outcome] Type: [new/update]
ReviewUser confirms or corrects

Key question: "Are you looking to document the design now and implement later, or do you want to implement immediately?"


Stage 2: Current State

StepAction
AnalyzeRead affected C3 docs via layer navigation
AskAny existing components this relates to?
SynthesizeList related components, their behavior, dependencies
ReviewUser confirms or corrects

Stage 3: Scope Impact

StepAction
AnalyzeWhich containers affected? New or update?
AskClarify boundaries, dependencies
SynthesizeList all affected c3 IDs
ReviewUser confirms scope

Stage 4: Create ADR

Generate at .c3/adr/adr-YYYYMMDD-{slug}.md.

Provisioning ADR template:

---
id: adr-YYYYMMDD-{slug}
title: [Design Decision Title]
status: proposed
date: YYYY-MM-DD
affects: [c3 IDs]
approved-files: []
base-commit:
implements:
superseded-by:
---

Key sections:

  • Problem (why this design is needed)
  • Decision (what we're provisioning)
  • Rationale (design tradeoffs)
  • Affected Layers (what docs will be created)

Note: approved-files stays empty for provisioning (no code changes).


Stage 4b: ADR Acceptance

Use AskUserQuestion:

question: "Review the ADR. Ready to accept and create provisioned docs?"
options:
  - "Accept - create provisioned component docs"
  - "Revise - update scope or decision"
  - "Cancel - abandon this provisioning"

On Accept:

  1. Update ADR status: proposedaccepted
  2. Proceed immediately to Stage 5

Stage 5: Create Provisioned Docs

PREREQUISITE: ADR must be in status: accepted before creating docs.

For NEW component:

Create directory structure first:

mkdir -p .c3/provisioned/c3-X-container

Create at .c3/provisioned/c3-X-container/c3-XXX-name.md:

---
id: c3-XXX-name
status: provisioned
adr: adr-YYYYMMDD-{slug}
---

# [Component Name] (Provisioned)

## Purpose

[What this component will do]

## Behavior

[Expected behavior when implemented]

## Dependencies

- Uses: [c3 IDs of components this will use]
- Used by: [c3 IDs of components that will use this]

## Notes

This component is provisioned (designed) but not yet implemented.
Implementation will be tracked via a separate ADR.

IMPORTANT: Do NOT include ## Code References section - provisioned components have no code.

For UPDATE to existing component:

Create at .c3/provisioned/c3-X-container/c3-XXX-name.md:

---
id: c3-XXX-name
status: provisioned
supersedes: ../../c3-X-container/c3-XXX-name.md
adr: adr-YYYYMMDD-{slug}
---

# [Component Name] (Provisioned Update)

[Full component doc as it will be after implementation]

Update container README (optional)

If creating new component, add to container's README under "Provisioned" section:

## Provisioned Components

Components designed but not yet implemented:

| ID | Name | ADR |
|----|------|-----|
| c3-XXX | Name | adr-YYYYMMDD-slug |

Stage 6: Finalize ADR

Update ADR frontmatter:

status: provisioned    # Changed from accepted

Add to end of ADR:

## Provisioned

Component docs created:
- `.c3/provisioned/c3-X/c3-XXX.md`

To implement this design, create a new ADR with `implements: adr-YYYYMMDD-{slug}`.

Examples

Example 1: Provision new component

User: "provision a rate limiter for the API"

Stage 1 - Intent:
  Intent: Provision rate limiter
  Goal: Document rate limiting design before implementing
  Type: New component

Stage 2 - Current State:
  Related: c3-2-api (API Backend)
  No existing rate limiting

Stage 3 - Scope:
  New: c3-206-rate-limiter in c3-2-api
  Integrates with: c3-201-auth-middleware

Stage 4 - ADR:
  Created: .c3/adr/adr-20260129-rate-limiter.md
  Status: proposed

Stage 4b - Accept:
  User accepts → ADR status: accepted

Stage 5 - Create Docs:
  Created: .c3/provisioned/c3-2-api/c3-206-rate-limiter.md
  Component status: provisioned

Stage 6 - Finalize:
  ADR status: accepted → provisioned

Example 2: Provision update to existing

User: "design OAuth support for the auth middleware"

Stage 1 - Intent:
  Intent: Provision OAuth addition
  Goal: Document OAuth design before implementing
  Type: Update to existing c3-201

Stage 2 - Current State:
  Existing: c3-201-auth-middleware (basic auth only)

Stage 3 - Scope:
  Update: c3-201-auth-middleware
  No new components

Stage 4 - ADR:
  Created: .c3/adr/adr-20260129-oauth-support.md

Stage 4b - Accept:
  User accepts → ADR status: accepted

Stage 5 - Create Docs:
  Created: .c3/provisioned/c3-2-api/c3-201-auth-middleware.md
  (supersedes: ../../c3-2-api/c3-201-auth-middleware.md)

Stage 6 - Finalize:
  ADR status: accepted → provisioned

Response Format

**Stage N: {Name}**
{findings}
**Open Questions:** {list or "None - confident"}
**Next:** {what happens next}

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

96/100Analyzed 2/10/2026

An exceptionally well-structured skill for architectural design. It provides a clear multi-stage workflow, specific templates, and explicit routing logic to distinguish between design and implementation tasks.

100
100
70
100
100

Metadata

Licenseunknown
Version-
Updated1/29/2026
Publisherlagz0ne

Tags

apigithub-actionssecurity