Skip to content
Back to skills

Collection

ASecurity

Use when user says "build concepts", "generate stories", "create stories", "brainstorm stories", "brainstorm features", "create stories for [node]", or asks for new story ideas. Complete story lifecycle - generates evidence-based stories from git commits and gap analysis, validates quality, vets for conflicts, and retries up to 10 times if duplicates detected. Polishes stories with hold_reason='polish' FIRST before generating new ones. Supports multi-node batching. Does NOT commit - leaves th...

  • 24 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
toolspythongosqlnodegitdatabase

Works with

  • cursor
  • terminal
  • cli

Security analysis

A100/100

Pro scans all 21 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add mattnigh/skills_collection --skill collection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Collection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Collection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mattnigh-collection-aee3e18b/badge)](https://www.skillsdirectory.com/skills/mattnigh-collection-aee3e18b)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: concept-building
description: Use when user says "build concepts", "generate stories", "create stories", "brainstorm stories", "brainstorm features", "create stories for [node]", or asks for new story ideas. Complete story lifecycle - generates evidence-based stories from git commits and gap analysis, validates quality, vets for conflicts, and retries up to 10 times if duplicates detected. Polishes stories with hold_reason='polish' FIRST before generating new ones. Supports multi-node batching. Does NOT commit - leaves that to caller.
disable-model-invocation: true
---

# Concept Building - Evidence-Based Generation with Vetting

Generate user stories grounded in git commits and gap analysis, with built-in duplicate detection.

**Database:** `.claude/data/story-tree.db`

**Critical:** Use Python sqlite3 module, NOT sqlite3 CLI.

---

## Critical Rules

> **A story is NOT complete until vetted.**
>
> This applies to ALL stories—AI-generated or user-provided.
> Never commit after insertion alone.

---

## Priority Order

1. **FIRST:** Polish any stories with `hold_reason='polish'`
2. **THEN:** Generate new stories for target node

```python
python -c "
import sqlite3, json
conn = sqlite3.connect('.claude/data/story-tree.db')
conn.row_factory = sqlite3.Row
stories = [dict(row) for row in conn.execute('''
    SELECT s.id, s.title, s.description, s.stage, s.hold_reason, s.notes,
           (SELECT ancestor_id FROM story_paths WHERE descendant_id = s.id AND depth = 1) as parent_id
    FROM story_nodes s WHERE s.hold_reason = 'polish' ORDER BY s.created_at
''').fetchall()]
print(json.dumps({'count': len(stories), 'stories': stories}, indent=2))
conn.close()
"
```

---

## Multi-Node Batching

When given multiple node IDs (e.g., "Generate stories for nodes: 1.2, 1.3"):

- Perform goals check and git analysis ONCE (shared context)
- Loop through nodes for context/gap/generation
- Max 1 story per node when batching, total max 2 stories
- Single combined output

**Token savings:** ~2,800 tokens per additional node.

---

## Select Workflow

| Context | Workflow |
|---------|----------|
| GitHub Actions / Automation | `references/ci-workflow.md` |
| User conversation / Interactive | `references/interactive-workflow.md` |

### How to Identify Context

**CI Context:**
- Running in GitHub Actions
- No user available for prompts
- Batch processing mode

**Interactive Context:**
- User is present in conversation
- User may provide story directly
- User may ask for story to be generated
- Can ask user for conflict resolution

---

## Shared Requirements

Both workflows share these requirements:

### Database Access

Use Python sqlite3 module (sqlite3 CLI unavailable):

```python
python -c "
import sqlite3
conn = sqlite3.connect('.claude/data/story-tree.db')
cursor = conn.cursor()
cursor.execute('YOUR SQL HERE')
print(cursor.fetchall())
conn.close()
"
```

### Story Format

```markdown
**As a** [specific user role]
**I want** [specific capability]
**So that** [specific benefit]

**Acceptance Criteria:**
- [ ] [Specific, testable criterion]
- [ ] [Specific, testable criterion]
- [ ] [Specific, testable criterion]

**Related context:** [Evidence from commits or gaps]
```

**Quality Requirements:**
- Specific user role (not generic "user")
- Concrete, measurable capability
- Testable acceptance criteria
- Evidence from commits or clear functional gap
- Stories decompose parent scope (don't expand it)

### Conflict Classification

| Type | Description |
|------|-------------|
| `duplicate` | Same capability, same scope |
| `scope_overlap` | Partial overlap in functionality |
| `competing` | Mutually exclusive approaches |
| `incompatible` | Cannot coexist in codebase |
| `false_positive` | Flagged but actually unrelated |

### Three-Field System

```
Stage:       concept → approved → planned → active → implemented → ready → released

Hold:        polish | wishlist (pauses progress, clears on resume)

Disposition: rejected | infeasible | deprecated | archived | legacy (terminal)
```

---

## Quick Reference

| Task | Command |
|------|---------|
| Find capacity | `python .claude/scripts/story_workflow.py --ci` |
| Vet concept | `python .claude/skills/concept-vetting/candidate_detector.py --story-id ID` |
| View tree | `python .claude/skills/story-tree/scripts/tree-view.py` |

---

## References

### Workflows
- **CI Workflow:** `references/ci-workflow.md`
- **Interactive Workflow:** `references/interactive-workflow.md`

### Generation
- **Gap Analysis:** `references/gap-analysis.md` - Evidence-based story discovery
- **ID Generation:** `references/id-generation.md` - ID format rules and assignment
- **Validation:** `references/validation.md` - Pre-insertion quality checks

### External
- **Concept Vetting:** `.claude/skills/concept-vetting/SKILL.md`
- **Story Tree:** `.claude/skills/story-tree/SKILL.md`
- **Goals:** `.claude/data/goals/goals.md`, `.claude/data/goals/non-goals.md`

Files in this skill

  • 0Chan-smc__claude-code-workflow-lab__claude__skills__frontend-dev-guidelines__SKILL.md15.1 KB
  • 17hz__nextjs-template__claude__skills__example-skill__SKILL.md316 B
  • 1ambda__dataops-platform__claude__skills__context-synthesis__SKILL.md3.5 KB
  • 1natsu172__dotfiles__claude__skills__git-analysis__SKILL.md5.4 KB
  • 1natsu172__dotfiles__claude__skills__github-pr-best-practices__SKILL.md7.7 KB
  • 23Maestro__prospect-pipeline__claude__skills__npid-fastapi-skill.md26.1 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-javascript__SKILL.md15.7 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-code-python__SKILL.md17.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-expression-syntax__SKILL.md9.4 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-mcp-tools-expert__SKILL.md12.5 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-node-configuration__SKILL.md16.6 KB
  • 360AYA25__ClaudeN8N__claude__skills__n8n-workflow-patterns__SKILL.md11.2 KB
  • 3x-Projetos__claude-memory-framework__claude__skills__scientist__SKILL.md14.8 KB
  • 5MinFutures__futures-arena__claude__skills__migration-tracker__SKILL.md16.2 KB
  • 5MinFutures__futures-arena__claude__skills__planning-guidelines__SKILL.md11.8 KB
  • 92Bilal26__TaskPilotAI__claude__skills__assessment-builder__SKILL.md17.5 KB
  • 92Bilal26__TaskPilotAI__claude__skills__book-scaffolding__SKILL.md19.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__code-validation-sandbox__SKILL.md6.2 KB
  • 92Bilal26__TaskPilotAI__claude__skills__exercise-designer__SKILL.md18.1 KB
  • 92Bilal26__TaskPilotAI__claude__skills__learning-objectives__SKILL.md24.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…