OKF Author
Author OKF concept files that the graph engine can pack and impact-analyze.
Rules
- Every concept file must have YAML frontmatter with at least
type and title.
- Include
description and timestamp (ISO-8601) when you have them.
- Nouns this plugin owns:
Catalog, ContextPack.
- 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.
- For derived or agent-generated content, set
generated: true and populate sources.
- Use absolute Markdown links:
[Label](/path/to/concept.md).
- 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
- Clarify concept purpose, type, and placement.
- Choose a stable path/slug.
- Fill frontmatter from
templates/knowledge.md (or Catalog/ContextPack).
- Write a concise body with absolute links.
- Update parent
index.md catalog entry if one exists (type: Catalog).
- Append a one-line entry to
log.md.
- Validate (prefer
okf validate; fallback okf-graph.py validate).
Optional richer links
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
1---2name: okf-author3description: 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.4---56# OKF Author78Author OKF concept files that the graph engine can pack and impact-analyze.910## Rules11121. Every concept file must have YAML frontmatter with at least `type` and `title`.132. Include `description` and `timestamp` (ISO-8601) when you have them.143. **Nouns this plugin owns:** `Catalog`, `ContextPack`.154. 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.165. For derived or agent-generated content, set `generated: true` and populate `sources`.176. Use **absolute** Markdown links: `[Label](/path/to/concept.md)`.187. After writing, offer to run validation and, for high-degree nodes, impact analysis.1920## Noun ownership (do not invent these here)2122| Plugin | Nouns |23|--------|-------|24| **okf-plugin (this)** | Catalog, ContextPack |25| **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 |26| **SAC** | System, Service, Component, architecture/runtime topology (see SAC README) |27| **DEKC** | Dataset, Table, View, Metric, Stream, Job, lineage, lakes, marts, semantic layer, glossary |28| **AGER** | AgentNode, Workflow, Harness, SharedState, ToolCapability, loop/runtime/ops types |2930If the user asks to author an `AgentNode`, load AGER. If they ask for a `TicketLink` or `DecisionRecord`, load PKC.3132## Process33341. Clarify concept purpose, type, and placement.352. Choose a stable path/slug.363. Fill frontmatter from `templates/knowledge.md` (or Catalog/ContextPack).374. Write a concise body with absolute links.385. Update parent `index.md` catalog entry if one exists (`type: Catalog`).396. Append a one-line entry to `log.md`.407. Validate (prefer `okf validate`; fallback `okf-graph.py validate`).4142## Optional richer links4344```yaml45links:46 - target: /knowledge/orders.md47 rel: depends_on48```4950Core `rel` values: `depends_on`, `routes_to`, `implements`, `documents`, `uses`, `owns`, `supersedes`, `related_to`, `tracks`, `maps_to`, `released_in`.5152Deep reference: `references/typed-edges.md`.5354## TicketLink5556TicketLink is a **PKC** noun. Use `project-knowledge-capture` `scripts/pkc_ticket_link.py`, not this plugin.5758## Done when5960- File written with `type` + `title` and at least one body section61- Catalog/index updated if applicable62- Links resolve