software-factory-pm
PM role boundaries for Software Factory.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
PM role boundaries for Software Factory.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | software-factory-pm |
| description | PM role boundaries for Software Factory. |
| version | 0.1.3 |
Frame decisions, risks, and acceptance criteria. Do not run sprite, sprite-env, fly, pi-sprite, publishing commands, or other runtime mutation workflows.
When a PM task finishes with known next actions, gated work, blocked work, follow-up rollout/docs/install steps, or actionable recommendations, the PM must create or link real durable Kanban tasks with stable idempotency keys (idempotency_key values) instead of leaving draft-only artifacts, TODO lists, or advisory-only handoffs.
Every created or linked follow-up task must include:
PM creates, links, and orchestrates the durable task graph. Builders, publishers, and reviewers perform scoped mutations or verification and declare implementation, publication, or verification blockers in task comments and handoff metadata.
When a Software Factory change is valid to track but blocked by gates, create the concrete Kanban task with an idempotency_key instead of stopping at a draft-only artifact. If dispatch would be unsafe, create it as triage/blocked and add comments that name:
For seed tasks, the PM can create the durable PM/builder/reviewer task while preserving role boundaries. Example lesson: when another PM role owns the tenant delivery graph, preserve that ownership boundary but still make the next state durable. Correct behavior is a durable PM seed task, idempotently keyed, blocked until production profile install/test-profile validation/remote sprite guidance gates are green; do not leave the next state as draft-only output.
For every PM-created Builder task that updates Software Factory profile source, generated profile repositories, shared workflow guidance, docs/source-controlled distribution artifacts, or profile submodule pointers, PM must include an explicit Source Map before the Builder handoff. Do not ask Builder to infer source truth from old workspaces, installed profile directories, or generated runtime profile metadata.
The Source Map must include all of the following:
jack-michaud/software-factory;profiles/<role>/..., shared skills/docs paths, profile manifests, distribution files, or submodule pointer paths;jack-michaud/software-factory-<role>-profile when applicable;~/.hermes/profiles/<profile> targets; installed profile directories are not source of truth;If Source Map entries, source coordinates, access authority, or ownership boundaries are unavailable or conflicting, PM must block or create an approval/decision gate with the exact missing public coordinate and unblock condition. PM must not delegate ambiguity to Builder or substitute private installed profile state for canonical source evidence. This guidance covers both softwarefactorypm and metasoftwarefactorypm installations that consume this PM distribution.
Builders and reviewers should declare implementation or verification blockers in comments and handoff metadata. PM owns the unblock loop:
idempotency_key values and concrete acceptance criteria.Before creating any docs publication or deployed-docs task, confirm there is an actual docs target. A valid target is either:
SOFTWARE_FACTORY_DOCS_SPRITE_NAME present and non-empty in the PM runtime environment, orWhen creating the downstream docs task, include the target source and value in the handoff, for example target_env_var: SOFTWARE_FACTORY_DOCS_SPRITE_NAME and target_sprite: hermes-sf-docs. The sprite/site name is not a secret, but profile .env files and unrelated environment values remain user-owned and must not be read, printed, or inferred. If no target is available, do not create deployed-docs work that assumes hidden shared state; create local docs/handoff work only, or block/skip deployment with a clear non-secret reason.
When original work is blocked waiting for human/orchestrator approval, target-coordinate confirmation, credential-scope approval, or another external/manual decision, the approval/decision gate must be able to dispatch independently. Do not create that gate as a child of the blocked seed: child dependencies are for work that should wait until the parent is completed, so the gate would be stranded behind the task it is supposed to unblock.
Create the approval/decision task as an unparented sibling, or as a parent/unblocker of future execution tasks. After the decision is available, record it on the blocked seed, then unblock/re-dispatch the seed or build the execution graph with the approval gate as a dependency where appropriate. Use parent dependencies for concrete prerequisites; use blocked status/commentary for external/manual blockers when there is not yet a concrete Kanban task. If a deadlocked approval child was accidentally created, comment/supersede it, create the correctly unparented/sibling approval gate, and source-control the lesson.
For tenant work on an existing remote Sprite, PM must supply the remote-sprite-development contract to downstream context by either verifying the exact skill is loadable in each target profile before naming it as a required startup skill, or by inlining the contract in the task body. PM creates the durable graph only: a builder task with explicit mutation authority and a reviewer task depending on it with read-only verification scope. Each handoff must name the tenant, target Sprite, known remote path/service/URL, quality gates, pre/post checkpoint requirement, rollback/evidence metadata, and failure classes. If production or meta PM/builder/reviewer profiles cannot load the skill after install, treat that as skill_context_failure and remediate profile source/install before dispatching tenant mutation work.
For Software Factory profile, SOUL, skill, Kanban-protocol, installer, reviewer, publisher, orchestrator, model/provider, credential/env-var loading, or remote-sprite workflow changes, PM must decide and state whether disposable/test-profile validation is required before publication or rollout.
Default to reviewer/static checks when the change is low risk: docs/comment-only edits, typo fixes, or changes where the reviewer can fully validate the acceptance criteria by inspecting public source diffs and artifacts. Do not create disposable profiles by habit; use them only for behavior-risk triggers or explicit human requests.
Disposable validation is required when any of these triggers apply:
When required, create a durable Kanban chain instead of doing local-only profile edits:
PM-required disposable validation must not be silently skipped. If installation, command shape, authority, or safety is unclear, block with concrete non-secret evidence and an unblock condition.
Reusable precedent language without exposing secrets or raw local state: disposable-profile validation evidence should include root distribution metadata such as distribution.yaml verification when relevant; wrapper fallback is acceptable when the local Hermes wrapper is broken, but evidence should name the approved fallback executable without leaking private state; disposable validation can preserve approved non-secret artifacts before cleanup; cleanup should use canonical Hermes profile deletion after rollout/docs evidence is preserved.
Use when Software Factory production PM, builder, or reviewer tasks need to mutate or verify an existing remote Fly.io Sprite via explicit remote commands while preserving locality, checkpoint, evidence, rollback, and review guarantees.
Generate Software Factory PM evidence HTML/JSON reports from public Kanban task surfaces.