xiaohongshu
xiaohongshu
adr-creator
Create Architecture Decision Records (ADRs) documenting significant technical decisions for the FF Analytics platform. This skill should be used when making architectural choices, evaluating alternatives for data models or infrastructure, documenting trade-offs, or when the user asks "should we u...
Full skill instructions
Create Architecture Decision Records (ADRs) that document significant technical decisions for the Fantasy Football Analytics project following the established ADR format and workflow.
Use this skill proactively when:
ADRs serve as permanent records of significant technical decisions, capturing:
Benefits:
The FF Analytics project uses ADRs for:
Ask these questions:
Decision Scope Examples:
HIGH - Needs ADR:
LOW - Does NOT need ADR:
Rule of thumb: If the decision impacts multiple components or will be referenced in future work, create an ADR.
Thoroughly evaluate options:
Example (from ADR-010):
| Alternative | Pros | Cons | Verdict |
|---|---|---|---|
| gsis_id canonical | NFL authoritative | NFL-specific, couples to nflverse | Rejected |
| mfl_id canonical | Platform-neutral, nflverse provides crosswalk | Indirect (via crosswalk) | Chosen |
| Generate synthetic ID | Complete control | No provider alignment, complex migration | Rejected |
Use the template from assets/adr_template.md:
scripts/get_next_adr_number.pycd .claude/skills/adr-creator
python scripts/get_next_adr_number.py # Returns ADR-015, ADR-016, etc.
Create file: docs/adr/ADR-{NNN}-{slug}.md
mfl-id-canonical-identity)Fill all sections completely:
Good context example:
"The platform integrates 19+ fantasy data providers, each using different player IDs. We need a canonical player_id for dim_player that enables identity resolution across all providers while remaining stable as providers are added/removed."
Good decision example (from ADR-010):
"Use nflverse's
mfl_idas the canonicalplayer_idthroughout the dimensional model. Createdim_player_id_xrefcrosswalk seed table mapping mfl_id to 19 provider-specific IDs."
Be honest about trade-offs. Example:
Negative: Requires join to crosswalk table for provider ID lookup Mitigation: Crosswalk is small (~5K rows), joins are fast; SCD Type 1 so no history bloat
Self-review checklist:
Verification:
Does this ADR answer:
Filing:
docs/adr/ADR-{NNN}-{slug}.mddocs/adr/README.mdExample index entry:
- [ADR-015: DuckDB External Parquet for Large Marts](ADR-015-duckdb-external-parquet.md) - **Accepted** (2024-11-08)
Superseding previous ADRs:
When ADR supersedes an older decision:
ADRs progress through statuses:
Update status as decisions evolve:
Bad: "Use DuckDB for better performance" Good: "Use DuckDB with External Parquet materialization for mart models >1M rows to reduce dev.duckdb file size and improve query performance via columnar scans"
Don't just state the decision - explain why alternatives were rejected:
Example:
Alternative: PostgreSQL
- ✅ Mature, widely used, excellent ecosystem
- ❌ Requires separate server process (complexity for local dev)
- ❌ No native Parquet support (needs external tools)
- Verdict: Rejected due to local development complexity
When possible, show actual code/SQL/schemas:
-- dim_player_id_xref (crosswalk seed)
CREATE TABLE dim_player_id_xref (
player_id VARCHAR PRIMARY KEY, -- mfl_id (canonical)
gsis_id VARCHAR, -- NFLverse
sleeper_id INTEGER, -- Sleeper
...
)
Reference:
Once accepted, ADRs should rarely change. If decision evolves:
Workflow:
adr_template.md - Complete ADR template with all sectionsexample_adr.md - Real ADR from project (ADR-010: mfl_id canonical identity)get_next_adr_number.py - Returns next available ADR numbercreate_adr.py - Interactive ADR creation helper (use this to create new ADRs)Pattern: Dimensional modeling decisions (facts, dimensions, grain, SCDs)
Examples:
Typical structure:
Pattern: Tooling and platform choices
Examples:
Typical structure:
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience