open-data
Original:🇺🇸 English
Translated
Architect and co-design futureproof persistence systems built on open data principles. Use when designing data layers, choosing storage formats, structuring knowledge bases, building file-system-as-database architectures, or evaluating existing systems for portability and longevity. Use when user says "design my data model", "how should I store this", "is my data portable", "audit my persistence layer", "plan a migration", or asks about file-based databases, Markdown schemas, or Obsidian-compatible data formats. Do NOT use for general coding tasks, database query optimization, or SQL schema design.
2installs
Sourcejayfarei/open-data
Added on
NPX Install
npx skill4agent add jayfarei/open-data open-dataTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →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:
- — The 7 non-negotiable futureproof principles
references/principles.md - — 8 reusable persistence patterns with tradeoffs
references/design-patterns.md - — Step-by-step architectural decision guide
references/decision-framework.md - — Obsidian data model technical reference
references/obsidian-spec.md
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 and
references/design-patterns.mdreferences/decision-framework.md - Ask the user about entity types, expected volumes, creation method, and lifecycle
- Walk through the 8 decisions in with the user
references/decision-framework.md - 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 for the 60-point scoring criteria
references/auditor-rubric.md - Ask the user to describe their current persistence approach
- Score each of the 20 criteria (6 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 explicitly marked as regenerable
- Application config is separated from user content
- File paths serve as identifiers, not UUIDs or database keys
- Non-standard syntax degrades gracefully to readable text in other tools
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 20 criteria (typical result: ~18/60, 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.