Skip to content

[dogfood] plan materialize dead-ends on types with required-on-create custom fields (pm-qd2h) #452

Closed

Description

@unbraind

Summary

pm plan materialize cannot create items of a type that has a --required-on-create custom field, because there is no way to pass values for required custom fields through materialize. It fails with missing_required_option for the custom field.

Impact

Once a project adds a required-on-create custom field to its Task type (a common governance choice — e.g. acceptance_owner), pm plan materialize --materialize-type Task is broken for every plan step. The agent loop (plan → materialize → task) hits a dead end. Workaround is to materialize as a type without required fields, defeating the point of typed materialization.

Environment

  • pm 2026.7.4, Node v22.20.0, Linux x86_64, fresh tracker + a --required-on-create --required-types Task custom field.

Reproduction

export PM_PATH="$(mktemp -d)/.pm"
pm init --defaults --agent-guidance skip
pm schema add-field acceptance_owner --type string --commands create,update --required-on-create --required-types Task
pm plan create --title "P" --step "Do thing"
pm plan materialize <plan-id> --steps 1 --materialize-type Task
# -> Error: missing_required_option --acceptance-owner for type "Task"

Expected

Either a --materialize-field key=value (repeatable) flag to satisfy required custom fields, OR materialize documents the constraint and suggests the workaround (materialize to a type without required fields, then pm update the new id).

Actual

missing_required_option hard fail; no guidance in the error that the cause is a required custom field on the target type.

Evidence

  • repro/finding: reports/findings.jsonl slug plan-materialize-blocked-by-required-custom-field
  • found in Phase 5 of the ContextOps dogfood

Workaround

--materialize-type Chore (or any type without required fields), then pm update <id> --acceptance-owner <value>.

Proposed improvement

Add --materialize-field key=value (repeatable) to pass custom field values, and/or have the materialize error message name the missing required field and suggest the workaround.

Dogfood context

Found in Phase 5 of the ContextOps dogfood after adding acceptance_owner as a required-on-create field for Task (Phase 4 governance).

Activity

  1. coderabbitai commented on Jul 5, 2026

    @coderabbitai
    🔗 Related PRs

    #200 - Add validation self-repair and agent ergonomics primitives [closed]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. changed the title [-][dogfood] Summary[/-] [+][dogfood] plan materialize dead-ends on types with required-on-create custom fields (pm-qd2h)[/+] on Jul 6, 2026
  3. unbraind commented on Jul 11, 2026

    @unbraind
    OwnerAuthor

    pm tracker item:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions