بنقرة واحدة
phira-archive-dag
Deterministic Graphviz/DOT derivation + validation for archive records.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Deterministic Graphviz/DOT derivation + validation for archive records.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Canonical per-record archive format (YAML front matter + Markdown body).
Pointer semantics for "since last record" and detected-change bookkeeping.
Checklist for proving baseline behavior is unchanged (or changes are intentional) via controlled A/B runs.
Fast, compute-aware verification checklist for implementation changes (imports, configs, tiny runs).
Workflow for conference/venue paper search and short reading lists.
Procedural checklist to infer and state the repo's effective runtime environment and dependency policy.
| name | phira-archive-dag |
| description | Deterministic Graphviz/DOT derivation + validation for archive records. |
Use this skill when regenerating .archive/graph.dot.
.archive/graph.dot must be deterministically derivable from .archive/records/*.md..archive/records/*.md.archive/pointers/*.yaml and .archive/pointers/branches/*.yamlDerivation MUST fail if any of the following are true:
id, schema_version, type, title, parents.schema_version is not 1.id does not match filename.id does not match [a-z0-9][a-z0-9-]*.type is not one of: Design, Build, Evaluate, Decide.parents references a non-existent record ID.parents graph contains a cycle.edges[*].to references a non-existent record ID.status, tags, git, metrics).edges[*].type (ignore unless used as a hint)..archive/graph.dotphira_archiveid ascending(from,to)| join)digraph phira_archive { ... }.rankdir=LRconcentrate=truenode [fontname="Helvetica", shape="box", style="rounded,filled", fillcolor="white", color="gray30"]edge [fontname="Helvetica", color="gray40"]id.label = "<id>\n<type>\n<title>"status on its own line if present.Only draw ONE directed edge between records: the lineage edge from parent -> child.
This avoids duplicate/opposing arrows and keeps the DAG readable.
For each parent in parents, emit exactly:
"<parent>" -> "<id>" [label="<edge_label>", weight=2, penwidth=1.5]
Compute edge_label for the lineage edge parent -> child as follows:
edges across all records.edges relationship connecting child and parent (in either direction), convert those to one or more lineage label tokens.|) as the lineage edge label.Design -> Build: implemented_byBuild -> Evaluate: evaluated_byEvaluate -> Decide: supportsEvaluate -> Evaluate: refined_byDecide -> Decide: superseded_byderivesMap semantic edge types to lineage label tokens, relative to the lineage direction parent -> child:
child -> parent:
implements => implemented_bytests => evaluated_byevaluates => evaluated_byrefines => refined_bysupersedes => superseded_bydepends_on => required_byparent -> child:
produces => producesIf multiple semantic hints apply, sort the resulting tokens and join with |.