--- name: ppp-package description: The package cycle from proposal to archive - build flows, screens and lists offline, check, pack, import and test via cards. Use for every change of a solution, new feature or fix alike, and to continue an active package from STATE.md. metadata: origin: "Fission-AI/OpenSpec@9111a76 (proposal, change folder, spec deltas, archive; files instead of the CLI); MIT; adapted, see THIRD_PARTY.md" --- # Package cycle One package is one folder `changes/NNN-name/` and one import. Eight steps; the user confirms the proposal, creates scaffolds, imports and tests the critical scenarios, you do everything else. `tasks.md` carries the progress: tick each task when it is done; a note under it only for a deviation or a decision, in one line. Commit and push after each step that changed files. Facts about export, package and import: [references/solutions.md](references/solutions.md). ## 1. Proposal `ppp new package ""` creates `proposal.md` and `tasks.md`. Fill in why, what changes, scope (in and out) and the **critical scenarios**: the few scenarios from `specs/` that must work after this import, with expected values. Changes to the specification go into `changes/NNN-name/specs/.md` (`ppp new spec-delta "NNN: "`; sections ADDED, MODIFIED, REMOVED). For a larger package add `design.md` (`ppp new design NNN`). Mark the package active in `ROADMAP.md` and `STATE.md`. Confirm the proposal with a decision card. After the confirmation say in one line that GPT-6.1 Sol is enough for building from here and how to switch in the model picker, because proposal and design often run on Claude Opus 5.5 (model recommendation A-9). Notes in `STATE.md` under "Manual changes in the tenant" that touch this package's flows are part of the scope: rebuild them exactly from the note. ## 2. Scaffold and transfer solution (only when needed) What only the designer can create comes from the user: a new flow with its trigger and one action per connector it needs, a new connection reference, an environment variable, an empty app. A tenant-step card lists the exact steps (names with the prefix, trigger type, inputs) and ends with the export: Solutions › main solution › Export › Unmanaged, file into `exchange/`. In a project of mode large the package goes through the transfer solution ([references/solutions.md](references/solutions.md)); without one in `project.json` the card first creates `Transfer` (unmanaged, publisher of the main solution). Its members are the components of this package: the card adds the missing ones with their connection references and environment variables, removes those no planned package changes, and exports the transfer solution instead of the main solution. Then `ppp unpack exchange/.zip`; it commits "Export " and shows what changed against the last commit. Changes you did not expect are manual changes in the tenant: compare them with the notes in `STATE.md`. If `ppp verify` reports C14 (an app in the solution), the first package removes it: card "Solutions › main solution › the app › Remove from this solution (not delete)", fresh export, `ppp unpack`. Its test checks that the app still calls its flows. ## 3. Build - **Flows**: edit the workflow JSON in `solution//Workflows/`. `ppp inventory ` first, then read only the line ranges you change. Connector actions come only from actions the designer saved (in the scaffold or another flow), never invented. For larger flows a generator in `components/power-automate/generator/` writes the JSON (`ppp run