Process authoring creates a usable ProcessForge process pack from guided answers. It writes a private authoring session first, reviews the generated draft, then applies public process files only after the draft passes blocking checks.
python bin/pf.py process-authoring-start --project-root <project-root> --id quality-audit --title "Quality Audit" --apply
python bin/pf.py process-authoring-review --project-root <project-root> --process quality-audit
python bin/pf.py process-authoring-apply --project-root <project-root> --process quality-audit
python bin/pf.py process-doctor --project-root <project-root> --process quality-auditOne-command creation is available when an answers file already exists:
python bin/pf.py process-create --project-root <project-root> --answers templates/process-authoring-answers.yaml --applyThe session lives under .pf/authoring/processes/<process-id>/:
answers.yamldraft.process.yamlquestions.mdlogic-review.mdauthoring-log.mdapply-report.md
Apply writes public files:
processes/user/<process-id>.yamlprompts/<process-id>-agent.mddocs/processes/<process-id>.mdexamples/process-authoring/<process-id>/
process-authoring-review checks for duplicate ids, missing roles, missing
artifacts, missing gates, gate artifacts that do not exist, handoff before
review, invalid task-loop iteration kinds, private local paths, and secret-like
values.
Warnings are visible in logic-review.md; blocking failures stop apply.
Every standard process-authoring flow must record an explicit top-level
evolve decision. Enabled evolve captures reusable learning candidates; disabled
evolve must include a concrete reason.
evolve:
enabled: true
decision:
value: enabled
reason: This process may produce reusable knowledge.
mode: optional
timing: end_of_run
default_scope: project
candidate_targets:
- knowledge_package
- template_package
- process_definition
candidate_targeting:
ask_target_layer: true
ask_applicability: true
ask_not_applicable: true
ask_generalization_level: true
default_to_narrowest_scope: trueThe materializer preserves evolve from answers into processes/user/<process-id>.yaml.
Do not place evolve only in metadata, and do not treat it as software-only,
model training, or automatic global package mutation.
When evolve is enabled, authoring questions must capture candidate targeting. Ask which target layer receives each candidate, where the observation applies, where it does not apply, and whether the observation should remain narrow, split into multiple candidates, or become a promotion proposal. The generated process keeps:
evolve:
extraction_hints:
- Split candidates when an observation contains project-specific and platform-general parts.
candidate_targeting:
default_scope: project
require_applicability: true
require_target: true
default_to_narrowest_scope: trueAuthoring answers should choose execution_mode before asking advanced role
questions:
single_agentsingle_agent_with_subagentsorchestrated_agentsprocess_factory
For single_agent, ask only about primary-agent artifacts, mandatory gates,
CLI checks, ledger check-in/check-out, and operator approval. Do not ask
Director, Supervisor, route, lease, or external worker questions unless the user
chooses a mode that needs those mechanics.
Authoring answers may include process_transitions, agent_requirements,
responsibility_boundaries, execution_mode_questions,
coordination_requirements, error_handling, and subagent_policy.
These fields record whether
the process can hand off work, which target processes and handoff modes are
allowed, which input artifacts and expected output artifacts cross the process
boundary, which receiving role or capability is required, how offline agents
are handled, whether continuation capsules are required, who owns the run after
handoff, and whether shell workers may call subagents.
responsibility_boundaries records who coordinates, who verifies runtime
execution, who performs the assigned work, and which CLI checks replace
token-heavy reasoning. Use it to keep Director/Ledger/Inspector/Worker duties
explicit: Director coordinates routes, leases, handoffs, and continuations;
Execution Inspector checks task runtime status, heartbeat, exit, required
outputs, and expected reports; Worker performs the capsule task.
Process authoring must record how the process behaves in simple and organized projects:
coordination_requirements:
mode: simple_allowed # simple_allowed | organized_required | organized_optional
director_inbox:
required: false
optional: true
error_workflow:
mode: none
error_handling:
enabled: false
mode: none
fallback_if_no_director: needs_operatororganized_required fails process-doctor in an effective simple project
unless the operator uses an explicit override. simple_allowed must not require
Director inbox. organized_optional adapts to the project's effective mode.
This MVP creates file-first process packs. It does not add a background runner, daemon, web transport, command hook execution, GUI, marketplace, database, or package publishing flow.
If a process supports specializations, keep specialization_policy as optional
routing metadata. Workflow stages should declare abstract
requires_capabilities; concrete resource bindings belong to specialization
resources and their platform_bindings.