# Okf Author

> Create or update OKF concepts using the core envelope (type + title). This plugin owns Catalog and ContextPack only. For domain nouns, hand off to PKC, SAC, DEKC, or AGER.

- Skill: `spillwavesolutions/okf-author` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add spillwavesolutions/okf-author`
- Raw SKILL.md: https://api.skillmd.com/api/skills/spillwavesolutions/okf-author/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: spillwavesolutions (https://skillmd.com/u/spillwavesolutions)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/spillwavesolutions/okf-author

---


# OKF Author

Author OKF concept files that the graph engine can pack and impact-analyze.

## Rules

1. Every concept file must have YAML frontmatter with at least `type` and `title`.
2. Include `description` and `timestamp` (ISO-8601) when you have them.
3. **Nouns this plugin owns:** `Catalog`, `ContextPack`.
4. Unknown types fall back to BaseConcept for **read-only** envelope parsing. That fallback does **not** authorize a write. `validate --strict` rejects unknown types. Domain nouns must be authored by the plugin that owns them.
5. For derived or agent-generated content, set `generated: true` and populate `sources`.
6. Use **absolute** Markdown links: `[Label](/path/to/concept.md)`.
7. After writing, offer to run validation and, for high-degree nodes, impact analysis.

## Noun ownership (do not invent these here)

| Plugin | Nouns |
|--------|-------|
| **okf-plugin (this)** | Catalog, ContextPack |
| **PKC** | Meeting, Experiment, Discovery, Assumption, Question, Feature, Requirement, Specification, Design, Release, CodeChange, Package, Risk, Acceptance, DecisionRecord, TicketLink, Epic, Story, Task, Subtask, Bug, Branch, Project, Playbook, Runbook, Reference |
| **SAC** | System, Service, Component, architecture/runtime topology (see SAC README) |
| **DEKC** | Dataset, Table, View, Metric, Stream, Job, lineage, lakes, marts, semantic layer, glossary |
| **AGER** | AgentNode, Workflow, Harness, SharedState, ToolCapability, loop/runtime/ops types |

If the user asks to author an `AgentNode`, load AGER. If they ask for a `TicketLink` or `DecisionRecord`, load PKC.

## Process

1. Clarify concept purpose, type, and placement.
2. Choose a stable path/slug.
3. Fill frontmatter from `templates/knowledge.md` (or Catalog/ContextPack).
4. Write a concise body with absolute links.
5. Update parent `index.md` catalog entry if one exists (`type: Catalog`).
6. Append a one-line entry to `log.md`.
7. Validate (prefer `okf validate`; fallback `okf-graph.py validate`).

## Optional richer links

```yaml
links:
  - target: /knowledge/orders.md
    rel: depends_on
```

Core `rel` values: `depends_on`, `routes_to`, `implements`, `documents`, `uses`, `owns`, `supersedes`, `related_to`, `tracks`, `maps_to`, `released_in`.

Deep reference: `references/typed-edges.md`.

## TicketLink

TicketLink is a **PKC** noun. Use `project-knowledge-capture` `scripts/pkc_ticket_link.py`, not this plugin.

## Done when

- File written with `type` + `title` and at least one body section
- Catalog/index updated if applicable
- Links resolve

