pdd-kit blueprint contribute
Propose your Product Model as a Blueprint, by opening a pull request.
npx @itai-gendler/pdd-kit blueprint contribute [--yes]
Options
| Option | Meaning |
|---|---|
--yes | Skip the confirmation prompt; required without an interactive terminal |
Before you run it
- The GitHub CLI, signed in with
gh auth login. - A model with no lint errors.
- In the Product's frontmatter: a category, at least one tag, at least one author, and an SPDX license.
- A logo. Move a compact
product-model/product.mdtoproduct-model/product/product.mdand addlogo.svgbeside it. See Logo and publishing. An optionalcover.webpbeside it is carried into the pull request too.
Your Product id becomes the Blueprint's name, the one others pull.
What it does
- Checks
ghand lints the model. Any failure stops the run. - Exports the model, as
blueprint exportdoes, and checks the metadata and logo above. - Regenerates the model from that portable report in a temporary directory, so
the pull request holds exactly what
blueprint pullwill produce. Code References, local paths and Coverage are dropped by the projection, not refused. - Asks you to confirm, unless you pass
--yes. - Forks the upstream into your account and syncs it with the upstream (or, if you own the upstream, clones it directly). A fork that cannot be synced stops the run.
- Writes
blueprints/<slug>/product-model/on ablueprint/<slug>branch and force-pushes that branch, which only this command uses. - Opens the pull request, or updates the open one, and prints its URL. Run it again to revise; leave the fork in place until the pull request is merged.
Your repository gains only the gitignored export files; the branch, commit and
fork all live elsewhere. The upstream is itai-gendler/pdd-kit unless
PDD_KIT_BLUEPRINT_REPOSITORY names another owner/repo.
Merging publishes the Blueprint: within minutes it appears in
blueprint list and can be pulled by name.
Exits 0 when the pull request is opened or updated, 1 when a check fails, you
decline, or GitHub refuses, and 2 without a terminal and without --yes.
Next
blueprint pullyour slug into an empty folder to test it.