Seed Procedure Candidates v0.1 — WF Procedure Index
Path: knowledge/dev/laws-new/workflow-manage/design/seed-procedure-candidates-v0.1.md
Status: DESIGN ONLY · v0.1 · candidate list, not enacted · 0 PG writes
Date: 2026-06-23
39 painful, repeatedly-needed procedures to seed first. These are candidates for wf_procedure rows + a lazy wf_procedure_ingredient declaration each. Full manifests are intentionally NOT designed yet.
Conventions
declared_maturity ∈ {known, text_ready, machine_readable, checklist_ready, dot_sequence_ready, one_button_ready} — a HINT; PG recomputes readiness.
automation_mode ∈ {manual, checklist, dot_sequence, one_button, agent_assisted}.
assembly_layer = UNMAPPED for all seeds (survey proved procedures carry no layer metadata in PG; do not fabricate). Re-derive later from meta_catalog.composition_level if/when mapped.
- Ingredients use ref-grammar v0.1.
UNKNOWN_SOURCE ingredients (io:,checker:,template:,report:) are marked — they route to triage, they do not block recording.
missing_route names the sub-procedure to call when a required ingredient is MISSING/UNKNOWN.
Group 1 — DOT lifecycle & anti-orphan (domain_group=dot-manage)
| procedure_code |
title |
maturity |
automation |
first ingredients (ref-grammar) |
missing_route |
PROC_CHECK_DOT_EXISTS |
Check if a DOT exists |
machine_readable |
one_button |
collection:public.dot_tools |
— |
PROC_REUSE_FIRST_SEARCH |
Reuse-first search before creating anything |
checklist_ready |
agent_assisted |
collection:public.dot_tools, view:public.wf_inventory_current |
— |
PROC_CREATE_NEW_DOT |
Create a new DOT (full lifecycle, no orphan) |
dot_sequence_ready |
agent_assisted |
procedure:PROC_REUSE_FIRST_SEARCH, collection:public.dot_tools, approval:patch_ops_code, procedure:PROC_DOT_BIRTH |
PROC_REQUEST_APPROVAL_GATE |
PROC_DOT_BIRTH |
DOT birth / khai sinh |
known |
manual |
collection:public.birth_registry, function:public.fn_birth_register, function:public.fn_birth_gate |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_DOT_GOVERNANCE_ADMISSION |
DOT governance / admission |
known |
manual |
approval:assign_governance_owner, collection:public.governance_registry |
PROC_CHECK_APPROVAL_GATE |
PROC_REGISTER_DOT_GOVERNED |
Register a DOT via governed registrar |
checklist_ready |
manual |
collection:public.dot_tools, collection:public.dot_agent_api_contract |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_UPDATE_DOT_SPEC |
Add/update a DOT spec & handbook |
text_ready |
manual |
report:dot-usage-handbook (UNKNOWN_SOURCE) |
PROC_CANONICALIZE_EVIDENCE_KB |
PROC_ROLLBACK_RETIRE_DOT |
Rollback / retire a DOT |
known |
manual |
collection:public.dot_tools |
— |
PROC_DOT_ANTI_ORPHAN_CHECK |
Detect/avoid an orphaned DOT (DB↔FS) |
checklist_ready |
agent_assisted |
collection:public._recon_dot_fs_inventory, collection:public.wf_fs_dot_bin_snapshot |
— |
Group 2 — Collection / schema (domain_group=collections-manage)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_VERIFY_COLLECTION_EXISTS |
Verify a collection/table exists |
one_button_ready |
one_button |
collection:public.directus_collections |
— |
PROC_VERIFY_FIELD_EXISTS |
Verify a field/column exists |
one_button_ready |
one_button |
field:<schema.table.column> |
— |
PROC_CLASSIFY_COLLECTION |
Classify a collection (governance_role) |
machine_readable |
agent_assisted |
collection:public.collection_registry |
— |
PROC_REGISTER_COLLECTION |
Register/create a collection (governed) |
checklist_ready |
manual |
dot:DOT_COLLECTION_REGISTER, dot:DOT_COLLECTION_CREATE, collection:public.table_registry |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_UPDATE_TABLE_REGISTRY |
Update table_registry / catalog entry |
text_ready |
manual |
collection:public.table_registry, collection:public.meta_catalog |
— |
PROC_ADD_FIELD_GOVERNED |
Add a field via governed APR |
checklist_ready |
dot_sequence |
approval:add_field, collection:public.directus_fields |
PROC_REQUEST_APPROVAL_GATE |
Group 3 — Label / taxonomy (domain_group=taxonomy)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_ADD_LABEL_TAG_CATEGORY |
Add a label / tag / category |
text_ready |
manual |
collection:public.taxonomy, collection:public.taxonomy_facets |
— |
PROC_VERIFY_LABEL_EXISTS |
Verify a label/tag exists |
machine_readable |
one_button |
label:<facet.code> |
— |
Group 4 — IO / checker (domain_group=io-checker) — UNKNOWN_SOURCE-heavy
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_CREATE_IO_CONTRACT |
Create an IO contract |
known |
manual |
io:<code> (UNKNOWN_SOURCE) |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_CHECK_BAD_INPUT_MATRIX |
Check bad-input matrix for a DOT |
known |
manual |
checker:<code> (UNKNOWN_SOURCE), collection:public.dot_tools |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_RUN_CHECKER |
Run a checker/validator |
known |
manual |
checker:<code> (UNKNOWN_SOURCE) |
PROC_TRIAGE_UNKNOWN_SOURCE |
Group 5 — Approval / gate (domain_group=approval-gate)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_CHECK_APPROVAL_GATE |
Check approval/gate requirement for an action |
machine_readable |
agent_assisted |
approval:<action_code> (apr_action_types; metadata = risk_level, handler_ref) |
— |
PROC_REQUEST_APPROVAL_GATE |
Propose a governed APR |
checklist_ready |
dot_sequence |
collection:public.approval_requests, approval:patch_ops_code |
PROC_CHECK_APPROVAL_GATE |
PROC_CHECK_QUORUM |
Check quorum / approver requirement |
machine_readable |
agent_assisted |
approval:<action_code>, collection:public.apr_approvals |
— |
Group 6 — Procedure-index meta (domain_group=procedure-index)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_REGISTER_PROCEDURE_INDEX_ENTRY |
Register/admit a procedure candidate |
text_ready |
agent_assisted |
collection:public.wf_procedure (self) |
— |
PROC_DESIGN_NEW_PROCEDURE |
Design a new procedure |
known |
manual |
procedure:PROC_REUSE_FIRST_SEARCH |
— |
PROC_CHECK_MISSING_INGREDIENTS |
Check missing ingredients for a procedure |
machine_readable |
one_button |
view:public.wf_procedure_readiness |
— |
PROC_BUILD_READINESS_REPORT |
Build a readiness report for a procedure |
machine_readable |
one_button |
view:public.wf_procedure_readiness |
— |
PROC_FORCE_REFRESH_INVENTORY |
Force-refresh inventory for a target object |
known |
agent_assisted |
view:public.wf_inventory_current |
— |
Group 7 — Source triage / status resolution (domain_group=triage)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_TRIAGE_UNKNOWN_SOURCE |
Handle an UNKNOWN_SOURCE ingredient |
known |
manual |
— (decides where the kind should be probed) |
— |
PROC_RESOLVE_INVALID_REF |
Resolve an INVALID_REF (normalize per grammar) |
known |
agent_assisted |
report:ref-grammar-v0.1 (UNKNOWN_SOURCE/KB) |
PROC_TRIAGE_UNKNOWN_SOURCE |
PROC_HANDLE_READ_BLOCKED |
Handle a READ_BLOCKED source |
known |
manual |
— |
— |
Group 8 — Evidence / readiness / SSOT (domain_group=evidence-ssot)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_PROVE_SSOT |
Prove SSOT (VPS code vs KB vs local staging) |
checklist_ready |
manual |
report:ssot-map (UNKNOWN_SOURCE/KB) |
PROC_CANONICALIZE_EVIDENCE_KB |
PROC_CANONICALIZE_EVIDENCE_KB |
Canonicalize evidence to KB + readback |
checklist_ready |
agent_assisted |
report:<kb-path> (UNKNOWN_SOURCE/KB) |
— |
PROC_PREPARE_OWNER_DECISION_PACKET |
Prepare an owner decision packet |
text_ready |
manual |
report:<packet> (UNKNOWN_SOURCE/KB) |
— |
PROC_RUN_DRYRUN_SURVEY |
Run a read-only dry-run survey |
checklist_ready |
agent_assisted |
view:public.wf_inventory_current |
— |
Group 9 — Trigger / event (domain_group=trigger-event)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_VERIFY_TRIGGER_EXISTS |
Verify a trigger exists |
one_button_ready |
one_button |
trigger:<schema.table.trigger> |
— |
PROC_VERIFY_EVENT_TYPE_EXISTS |
Verify an event type exists |
machine_readable |
one_button |
event:<domain.type> |
— |
Group 10 — Reuse / anti-duplication & process control (domain_group=reuse-control)
| procedure_code |
title |
maturity |
automation |
first ingredients |
missing_route |
PROC_FIND_REUSE_CANDIDATE |
Find a higher-layer reusable component |
checklist_ready |
agent_assisted |
view:public.wf_inventory_current, collection:public.dot_tools |
— |
PROC_DECIDE_CODEX_USE |
Decide when Codex may be used |
known |
manual |
— |
— |
Seeding discipline
- Seed rows only; declare ingredients lazily (start with the one_button/machine_readable verification procedures — they have the cleanest SAFE-kind ingredients and give immediate value).
- The UNKNOWN_SOURCE-heavy procedures (Group 4, parts of 8) are deliberately included because they expose where the system has no clean PG source — surfacing that gap is a feature, not a defect.
safety_class defaults: verification/read procedures = read_only; create/register/approve procedures = owner_gated; design/triage = ai_delegatable.
- Do not over-design manifests;
manifest_jsonb may stay {} / NEEDS_TRIAGE for most seeds at v0.1.