open-data
npx skills add https://github.com/jayfarei/open-data --skill open-data
Agent 安装分布
Skill 文档
Open Data Architect
A skill for designing persistence systems where user data outlives any particular application. The governing philosophy: the file system is the database, plain text is the schema, and conventions replace proprietary formats.
Instructions
Before producing any output, read the relevant reference files:
references/principles.mdâ The 8 non-negotiable futureproof principlesreferences/design-patterns.mdâ 9 reusable persistence patterns with tradeoffsreferences/decision-framework.mdâ Step-by-step architectural decision guidereferences/obsidian-spec.mdâ Obsidian data model technical reference
Then choose the appropriate workflow below based on what the user needs.
Step 1: Understand the Request
Determine what the user is asking for:
- Designing a new system? â Go to Step 2A
- Evaluating an existing system? â Go to Step 2B
- Thinking through a specific tradeoff? â Go to Step 2C
Ask clarifying questions if the domain, entity types, or constraints are unclear. Do not assume â the user’s domain matters enormously.
Step 2A: Design a New Persistence Layer
- Read
references/design-patterns.mdandreferences/decision-framework.md - Ask the user about entity types, expected volumes, creation method, and lifecycle
- Walk through the 9 decisions in
references/decision-framework.mdwith the user - Propose a directory structure, naming conventions, and metadata schema
- Produce a persistence specification using the template in
references/persistence-spec.md - Validate every decision against the principles in
references/principles.md
Expected output: A complete persistence specification document.
Step 2B: Audit an Existing System
- Read
references/auditor-rubric.mdfor the 69-point scoring criteria - Ask the user to describe their current persistence approach
- Score each of the 23 criteria (7 categories) from 0-3
- Identify lock-in points, proprietary dependencies, and portability risks
- Produce a scored audit report with specific remediation recommendations
- If migration is needed, propose incremental steps
Expected output: An audit report with scores, findings, and remediation plan.
Step 2C: Co-Design a Specific Decision
- Read the relevant reference files for the decision area
- Propose 2-3 architectural options with explicit tradeoff analysis
- Stress-test each option against the principles in
references/principles.md - Help the user arrive at a decision with clear rationale
- Document the decision as an Architecture Decision Record: Context â Decision â Consequences â Alternatives Considered
Expected output: An ADR documenting the decision and reasoning.
Step 3: Validate Output
Before finalizing any deliverable, verify:
- Every design decision can answer: “If the app disappears, is the data still usable?”
- No proprietary binary formats are required for core functionality
- Derived data (indices, caches) is regenerable and lives in
cache/ - App data is separated into
config/,state/, andcache/within.<app-name>/ - Each frontmatter field passes the boundary test (“Would a different Markdown tool find this meaningful?”)
- Non-regenerable app state (user decisions, manual corrections) is in
state/, not mixed intocache/or content - File paths serve as identifiers, not UUIDs or database keys
- Non-standard syntax degrades gracefully to readable text in other tools
- Consumer roles and access paths are documented (who reads, who writes, how)
- An agent can discover, read, and create entities using filesystem conventions alone
Examples
Example 1: Designing a Knowledge Management System
User says: “I’m building a tool that ingests bookmarks from Twitter, GitHub stars, and Reddit saves into LLM-generated summaries. How should I structure the data?”
Actions:
- Read design-patterns.md â identify Patterns 1, 2, 3, 6, 8 as applicable
- Walk through entity modeling: bookmark entities with source metadata
- Propose hybrid directory structure: by source type + temporal partitioning
- Define frontmatter schema with mandatory fields (type, source, created, url)
- Produce persistence specification
Result: Complete spec with directory layout, naming conventions, YAML schema, and index strategy â all in plain Markdown files.
Example 2: Auditing a Notion-Based System
User says: “My team uses Notion for everything. How locked in are we?”
Actions:
- Read auditor-rubric.md
- Score Notion against 23 criteria (typical result: ~19/69, F rating)
- Identify critical lock-in: cloud-only, proprietary block model, limited export
- Propose migration path: Notion export â Markdown conversion â open vault
Result: Audit report with scores and a step-by-step migration plan.
Example 3: Choosing a Link Resolution Strategy
User says: “Should I use relative paths or shortest-path for internal links?”
Actions:
- Read obsidian-spec.md section on link resolution
- Present 3 options with tradeoff matrix (shortest path, relative, absolute)
- Recommend based on user’s context (human-authored vs. machine-generated)
- Document as an ADR
Result: Architecture Decision Record with clear rationale.
Troubleshooting
Output is too abstract
Cause: Not enough domain context from the user. Solution: Ask specific questions â entity types, volumes, creation method, query patterns, team size. The decision framework requires concrete answers.
Principles conflict with user constraints
Cause: Real-world systems sometimes need pragmatic tradeoffs. Solution: Document the deviation explicitly. State which principle is being relaxed, why, and what the migration cost would be to fix it later.
User wants code, not architecture
Cause: This skill produces specifications, not implementations. Solution: Produce the spec first, then hand off to appropriate coding tools. The spec serves as the requirements document for implementation.