Skip to content

coreycoto/product-development

v0.10.8MIT

Owned workflows for understanding, designing, implementing, testing, reviewing and verifying products.

Product Development

Independently maintained engineering procedures, packaged for direct use without restoring upstream skills. Consumer repositories retain product policy, implementation contracts, verification commands and durable project knowledge. The procedures are informed by retained, revision-pinned upstream research; THIRD_PARTY_NOTICES.md records attribution and licenses. Packaged lineage is provenance, not an installation manifest.

Skills

SkillUse it to
engineering-workflowSelect the smallest sufficient procedure and continue to the authorized endpoint.
understand-codebaseExplain a bounded path or assess requested maintainability with evidence and alternatives.
diagnose-problemReproduce a symptom and discriminate causes with decisive probes.
design-changeResolve technical alternatives, contracts, impact and validation.
implement-changeComplete accepted intent in behaviorally useful slices.
review-codeAssess an exact candidate for supported defects and missing evidence.
test-behaviorAdd independent regression evidence at an appropriate public seam.
verify-productExercise the actual user path and retain observable results or prerequisite gaps.
maintain-verificationMaintain runnable consumer verification and optional feature maps with a read-only validator.
prototype-decisionAnswer one uncertainty through a bounded disposable experiment.
improve-performanceIdentify the limiter and measure equivalent work with correctness preserved.
model-domainClarify vocabulary, identity, state, invariants and boundary contracts.
check-protocolExplore an executable coordination model and report bounded properties, traces and assumptions.
rehearse-migrationExercise supported intermediate versions and recovery before a live transition.
assess-data-qualityAssess a dataset for a declared use without silently repairing its data.
capture-solutionRetain verified reasoning whose loss would cause recurrence or major rediscovery.
refresh-solutionsReconcile selected records while preserving policy, history and unknowns.
phased-refactorChange substantial structure in bounded phases with contract and parity evidence.
manage-codex-agentsPreserve the existing consent-based native role setup workflow.

A small understood task can go directly to implement-change. The router is not a mandatory chain and no skill automatically ships a local result. Shared references are read only for relevant techniques; they add no discoverable skills or mandatory specialist agents. Procedures remain usable in the parent without delegation. Use actual available tools rather than client-specific commands.

When the user names an engineering principle, the optional steering index links a small vocabulary to existing procedures. Conditional references cover resetting a failed premise, peak resource windows, independent versus canonical state, repeatable mechanical work and captured-profile forensics. Explain consequential choices naturally; routine work needs no extra checklist or principles footer.

Verification distinguishes executed user behavior from liveness and synthetic checks. Knowledge uses existing consumer conventions, deduplicates first and captures selectively; it does not set up a database, mine transcripts or update global memory or root instructions automatically. Project Management owns delivery tracking, Product Management owns product decisions and Communication owns substantial prose when those packages are available.

Requested maintainability assessments map rule ownership and concrete structural friction before proposing accepted changes. Recurrence prevention favors a qualified executable guard where useful, preserving uncodable reasoning selectively. Optional feature maps remain consumer-owned; their validator checks contained references and change selection, never executes product commands or claims complete coverage or current behavioral qualification.

The repository's docs/owned-workflows.md documents legacy-name migration. Existing consumer-restored upstream copies are outside this package's ownership; removing them requires a separately scoped inventory and migration.

Codex role extension

The local Codex client extension keeps role definitions in com.openai/agents/; extensions.com.openai references the bundled hooks and onboarding skill. Root mcp.json declares the local onboarding adapter. Other clients can use the ordinary skills; this adapter manages only local Codex roles.

Codex CLI 0.160.0 skips portable-package hooks in the observed local loader. The built Codex artifact therefore contains .codex-plugin/plugin.json and .mcp.json. Marketplace acquisition and release publication are separate from local source preparation; a local catalog change is not a released package. Complete Codex and portable packages are built into ignored dist/plugin-packages/, never committed or edited independently. For local testing, use the built Codex marketplace. A client version with qualified native portable-hook support can retire this projection.

RoleModel and effortUse
pd_explorerGPT-6 Luna, highFocused exploration and evidence gathering
pd_reviewerGPT-6.1 Sol, highCorrectness, regressions and missing test coverage
pd_implementerGPT-6.1 Sol, highAssigned implementation from an accepted plan
pd_diagnosticianGPT-6.1 Sol, highRoot cause and the smallest decisive next experiment
pd_transformerGPT-6 Luna, highExplicit mechanical edits with deterministic validation
pd_architecture_adviserGPT-6 Astra, mediumExplicit escalation for difficult architecture decisions

Explorer, reviewer and architecture adviser declare sandbox_mode = "read-only". Implementer, diagnostician and transformer declare sandbox_mode = "workspace-write". Implementation and transformation edit only assigned files. Diagnosis does not edit product source; its write default permits temporary diagnostic evidence. These are purpose-specific defaults. Codex reapplies the parent's live permission settings when it spawns a child, so those settings can override the role's sandbox default. Verify the effective runtime permissions before claiming a separate read-only sandbox. Repository guidance, permissions and delegation authority remain with the task. Model routing belongs to each purpose-specific agent, not a parent-session profile. Installing the plugin does not opt into automatic delegation, grant provider access, or change the parent model.

For existing repository roles and committed CI/cloud configuration, use the pinned adoption guide. The offline author renderer keeps shared models and behavior in this source while preserving consumer aliases, task constraints and named permission profiles. It is separate from the consent-gated local installer.

Requirements: local Codex custom-agent support (qualified against CLI 0.160.0), Python 3.11+ and an enabled bundled MCP server. Manual setup works before hook approval; automatic checks require reviewed/trusted hooks. Cloud and ChatGPT Work discovery are not qualified by this local pilot.

Start with the plugin's Setup action, or $product-development:manage-codex-agents in the current chat. The declared onboarding skill guides the user through one setup workflow:

  1. Review the three bundled hooks in Codex's Review hooks dialog (Desktop composer hook button), or /hooks in the CLI. They announce available agents, check installation/upgrades, and record local native agent selection.
  2. Install or update agents through the existing form, only when needed.
  3. Restart after role files change, then verify discovery. Already current agents do not need another installation or restart.

Installing the plugin registers its hooks, but does not approve them. The onboarding extension launches a skill; it does not provide an action to open or approve native hook review. The user approves the exact definitions in Codex; an installer form cannot grant hook trust. Manual setup remains available if review is deferred, with automatic checks reported as pending. An upgrade that introduces or changes a hook requires another native review; unchanged trusted definitions do not. No second hook installer or settings screen is needed.

At SessionStart, the command hook announces roles/routing and disk state. The MCP hook checks for an install or upgrade and prompts if needed. Setup also uses the declared plugin-onboarding skill; it is the same installer, not a separate settings workflow. It prefers the documented openai/elicitation/create method when openai/elicitation.form is negotiated, otherwise uses standard MCP elicitation/create when advertised. The deprecated openai/form method is not supported. Without either supported form capability, setup reports form_unavailable and leaves role files unchanged. A missing MCP connection during startup does not block the session; invoke $product-development:manage-codex-agents once the server connects. Decline/cancel never installs, and a declined choice is not prompted again by that server in the same session. There are no command-line consent bypasses.

The form previews the package version, models, target paths and writes. It offers shared user scope (recommended for personal reuse), the current repository, or later with titled choices and unchecked approval. Decline/cancel does not trigger another form dialect or an installation. An unsupported-form card is a failed rendering check, not consent; diagnose it before requesting another attempt. Structured settings are reserved for future persistent plugin preferences and are not another role-installation path. It generates roles beneath:

  • $CODEX_HOME/agents/product-development/, normally ~/.codex/agents/…;
  • <repository>/.codex/agents/product-development/ for project scope.

These are generated projections, with a local .gitignore and ownership marker, not additional authored sources to maintain in each repo. The native loader discovers the TOMLs. No config.toml, project trust or unrelated roles are modified. Project installation requires an explicit trusted entry for the repository root in shared Codex configuration; the installer never grants trust. Existing explicit registrations, duplicate scopes, symlinks and locally edited owned files stop the installer for resolution. The plan is rechecked after the form and under an installation lock. Upgrades retain private backups outside the agents discovery tree in the selected scope's agent-plugin-state/product-development/.

Native plugin upgrades supply the new assets. Startup compares their version and digest with the owned projection, then offers an upgrade through the same form. Older package versions cannot overwrite newer projections. There is no automatic marketplace-ref update. An interrupted/failed write requires inspection of the target, lock and retained backup before a retry; unknown outcomes are never automatically replayed. To uninstall generated roles, first inspect the ownership marker and local edits, then explicitly request their removal; disabling the plugin alone does not remove generated role files.

After install/upgrade, restart Codex and resume the chat; for CLI, exit and relaunch in the repository. This adapter cannot reload the desktop app's active configuration through its MCP connection. Use a client reload only when its custom-agent discovery is verified. Compaction or a repeated startup hook is not proof. Inspect the active spawn tool for a role/type selector; if the client does not expose it, report that limitation instead of claiming readiness. The SubagentStart hook records actual native role selection per parent session in private shared Codex state, with role ids and digests, never transcripts. Status lists observed selections separately from unverified roles. A restarted Desktop chat retains its session id, so native selections can be recorded when resuming the installation chat. Installation alone leaves verification pending. These receipts confirm selection, not the model or permission policy loaded by the child. Avoid costly verification-only subagents: confirm selection when delegation is authorized and useful to the task.

Live CLI delegation needs a persistent parent session in qualified Codex 0.160.0; an ephemeral parent has no rollout to fork. A useful read-only installer review verified pd_explorer selection with GPT-6 Luna, high reasoning and read-only permissions through native child-session metadata. Desktop accepted the current rich-form extension and installed the shared roles. After restart, a useful installer review selected pd_reviewer with GPT-6.1 Sol and high reasoning. Its native runtime inherited the parent's workspace-write permissions; it performed read-only work. Hook trust and hook-produced selection receipts remain separate checks. Reviewer selection does not qualify the other roles or prove an independently enforced read-only sandbox.

The expanded six-role catalog additionally passed isolated native form decline, installation and three-to-six-role upgrades in both scopes, without inference requests. Live selection and effective permissions for the new implementer, diagnostician and transformer still require useful authorized work after the reviewed upgrade and reload. Earlier selection receipts do not verify a newer catalog digest.

References: portable plugin packaging, native hooks and their trust/connection semantics, custom agents, the plugin onboarding extension, the current form extension, and Codex's rich form client implementation.

Product Development's optional evidence-based workflow hook routes are documented in the workflow hooks guide.