Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:37:27 +08:00
commit 37774aa937
131 changed files with 31137 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
---
name: ln-322-adr-creator
description: Creates ADRs (Nygard format, 7 sections, ~300-500 words) via short Q&A. Assigns next ADR number and validates standards.
---
# ADR Creator
Captures a single architecture decision with minimal dialog and saves it to the ADR collection.
## Purpose & Scope
- Assign next ADR number in `docs/reference/adrs/`.
- Gather title/category/context/decision/rationale/alternatives/consequences/status via 5 questions.
- Generate ADR file from template; validate standards; return path.
## When to Use
- Need to document a specific architectural/technical decision (one per ADR).
- Project already has reference docs structure (`docs/reference/adrs/`).
- Not for broad docs creation (use ln-110/ln-114 for initial structures).
## Workflow (concise)
1) **Detect number:** Scan existing ADR files, pick next zero-padded number, build slug.
2) **Dialog (5 Qs):** Title; category (Strategic/Technical); Context; Decision + Rationale; Alternatives table (2 rows); Consequences + Related + Status.
3) **Generate:** Copy template, fill placeholders (title/date/status/category/decision makers/context/decision/rationale/alternatives/consequences/related).
4) **Validate:** Ensure SCOPE tags, maintenance/Last Updated, POSIX ending; apply DOCUMENTATION_STANDARDS if present; auto-fix missing bits.
5) **Save & link:** Write `docs/reference/adrs/adr-NNN-slug.md`; optionally update `docs/reference/README.md` if placeholder found; report path and next steps.
## Critical Rules
- One decision per ADR; English language per standard.
- Include 2 alternatives with pros/cons/rejection; keep within ~300-500 words.
- Do not create if `docs/reference/adrs/` missing (warn instead).
- Preserve zero-padded numbering; no gaps.
## Definition of Done
- Next ADR number/slug determined; placeholders filled; no leftovers.
- File saved in adrs/ with ISO date, status, category, consequences, alternatives table.
- Standards validated (SCOPE, maintenance, POSIX); README updated if placeholder present.
- Path returned and user reminded to reference in architecture.md if needed.
## Reference Files
- Template: `ln-322-adr-creator/references/adr_template.md`
- Standards: `docs/DOCUMENTATION_STANDARDS.md` (if exists)
---
Version: 7.0.0 (Condensed ADR creation and standards validation)
Last Updated: 2025-11-26

View File

@@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ln-322-adr-creator - State Diagram</title>
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<link rel="stylesheet" href="../shared/css/diagram.css">
</head>
<body>
<div class="container">
<header>
<h1>📝 ln-322-adr-creator</h1>
<p class="subtitle">Architecture Decision Record Creator - State Diagram</p>
</header>
<div class="info-box">
<h3>📋 Workflow Overview</h3>
<ul>
<li><strong>Purpose:</strong> Create minimal Architecture Decision Records (ADRs) through 5-question dialog</li>
<li><strong>Format:</strong> Nygard format with 7 sections (~300-500 words)</li>
<li><strong>Categories:</strong> Strategic (business, patterns) or Technical (frameworks, infra)</li>
<li><strong>Use after:</strong> ln-111-docs-creator creates project structure</li>
</ul>
</div>
<div class="legend">
<div class="legend-item">
<div class="legend-color color-discovery"></div>
<span>ADR Discovery</span>
</div>
<div class="legend-item">
<div class="legend-color color-dialog"></div>
<span>Dialog/Generation</span>
</div>
<div class="legend-item">
<div class="legend-color color-decision"></div>
<span>Decision Point</span>
</div>
<div class="legend-item">
<div class="legend-color color-action"></div>
<span>Update/Summary</span>
</div>
</div>
<div class="diagram-container">
<div class="mermaid">
graph TD
Start([Start: Create ADR]) --> Phase1[Phase 1: ADR Number Detection<br/>Glob existing ADRs<br/>Calculate next number]
Phase1 --> Phase2[Phase 2: Interactive Dialog<br/>5 questions:<br/>Q1: Decision title<br/>Q2: Category Strategic/Technical<br/>Q3: Context<br/>Q4: Considered options<br/>Q5: Decision + consequences]
Phase2 --> Phase3[Phase 3: Generate ADR<br/>7 sections Nygard format<br/>300-500 words]
Phase3 --> ReadmeExists{README.md<br/>exists?}
ReadmeExists -->|Yes| Phase4[Phase 4: Update Documentation Hub<br/>Add ADR link to README]
ReadmeExists -->|No| Phase5
Phase4 --> Phase5
Phase5[Phase 5: Summary<br/>Display ADR path + next steps]
Phase5 --> End([End])
%% Styling
classDef discovery fill:#E3F2FD,stroke:#1976D2,stroke-width:2px
classDef dialog fill:#FFF9C4,stroke:#F57C00,stroke-width:2px
classDef decision fill:#FFE0B2,stroke:#E64A19,stroke-width:2px
classDef action fill:#C8E6C9,stroke:#388E3C,stroke-width:2px
class Phase1 discovery
class Phase2,Phase3 dialog
class ReadmeExists decision
class Phase4,Phase5 action
</div>
</div>
<div class="info-box">
<h3>🔑 Key Features</h3>
<ul>
<li><strong>5 Questions:</strong> Title, Category, Context, Options, Decision</li>
<li><strong>Minimal Format:</strong> 300-500 words, 7 sections (Nygard format)</li>
<li><strong>Categorization:</strong> Strategic (business decisions, patterns) vs Technical (frameworks, infrastructure)</li>
<li><strong>Auto-numbering:</strong> Automatically detects next ADR number</li>
</ul>
</div>
<footer>
<p>Generated for ln-322-adr-creator skill | Version 3.0.0</p>
<p>Diagram format: Mermaid.js | Last updated: 2025-11-08</p>
</footer>
</div>
<script>
mermaid.initialize({
startOnLoad: true,
theme: 'default',
flowchart: {
useMaxWidth: true,
htmlLabels: true,
curve: 'basis'
}
});
</script>
</body>
</html>

View File

@@ -0,0 +1,70 @@
# ADR-{{NUMBER}}: {{TITLE}}
**Date:** {{DATE}} | **Status:** {{STATUS}} | **Category:** {{CATEGORY}} | **Decision Makers:** {{DECISION_MAKERS}}
<!-- SCOPE: Architecture Decision Record for ONE specific technical decision ONLY. Contains context, decision, rationale, consequences, alternatives (2 with pros/cons). -->
<!-- DO NOT add here: Implementation code → Task descriptions, Requirements → Requirements.md, Multiple decisions → Create separate ADRs, Architecture diagrams → Architecture.md -->
---
## Context
{{CONTEXT}}
(2-3 sentences: background, problem, constraints, forces driving this decision)
---
## Decision
{{DECISION}}
(1-2 sentences: clear statement of what we decided, including version/constraints if applicable)
---
## Rationale
{{RATIONALE}}
(2-3 key reasons WHY we chose this solution)
---
## Consequences
**Positive:**
{{POSITIVE_CONSEQUENCES}}
(2-4 bullets: benefits, advantages)
**Negative:**
{{NEGATIVE_CONSEQUENCES}}
(2-4 bullets: trade-offs, costs, technical debt)
---
## Alternatives Considered
| Alternative | Pros | Cons | Why Rejected |
|-------------|------|------|--------------|
| {{ALT_1_NAME}} | {{ALT_1_PROS}} | {{ALT_1_CONS}} | {{ALT_1_REJECTION}} |
| {{ALT_2_NAME}} | {{ALT_2_PROS}} | {{ALT_2_CONS}} | {{ALT_2_REJECTION}} |
---
## Related Decisions
{{RELATED_DECISIONS}}
(Optional: ADR-001, ADR-003)
---
**Last Updated:** {{DATE}}
---
**ADR Template Version:** 3.0.0 (With Categorization)
**Template Last Updated:** 2025-11-05