Skip to main content

stack-decomposition-format

Structured format contract for "## Stack Decomposition" sections in plan documents, shared by gt-stack-plan (producer) and flow:work (consumer). Use when writing or parsing a Stack Decomposition section.

Aller à l'installation

Informations de source

Dépôt
KingInYellows/yellow-plugins
Dernière activité de la source
12 août 2026 à 20:53
Langue détectée de SKILL.md
anglais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
stack-decomposition-format
description
Structured format contract for "## Stack Decomposition" sections in plan documents, shared by gt-stack-plan (producer) and flow:work (consumer). Use when writing or parsing a Stack Decomposition section.
## What It Does Defines the machine-readable format for `## Stack Decomposition` sections that `gt-stack-plan` writes into plan documents, and that `flow:work` (yellow-core) parses to execute a stack bottom-up. Both sides must agree on this format exactly — it is a contract, not free-form prose. ## When to Use - Writing a `## Stack Decomposition` section (the `gt-stack-plan` skill, Phase 3). - Parsing a `## Stack Decomposition` section (the `flow:work` skill's Phase 1a stack detection). - Reading or writing the companion `## Stack Progress` section that tracks execution. ## Usage Machine-readable contract between `gt-stack-plan` (producer) and `flow:work` (consumer). Both commands must agree on this format. ### Section Structure The `## Stack Decomposition` section is appended to a plan document by `gt-stack-plan`. It uses structured markdown with numbered `###` subsections per stack item. ```markdown ## Stack Decomposition <!-- stack-topology: linear --> <!-- stack-trunk: main --> ### 1. feat/branch-slug-one - **Type:** feat - **Description:** Short description of what this PR does - **Scope:** path/to/file1.ts, path/to/file2.ts - **Tasks:** 1.1, 1.2, 1.3 - **Depends on:** (none) - **Linear:** ENG-123 ### 2. fix/branch-slug-two - **Type:** fix - **Description:** Short description of what this PR does - **Scope:** path/to/file3.ts - **Tasks:** 2.1, 2.2 - **Depends on:** #1 - **Linear:** ENG-124 ``` ### Fields Each stack item heading uses the format `### N. type/branch-name` where N is the stack position (1-indexed) and `type/branch-name` is the Graphite branch name. | Field | Required | Format | Description | |-------|----------|--------|-------------| | **Type** | Yes | Conventional commit prefix | `feat`, `fix`, `refactor`, `docs`, `test`, `chore`, etc. | | **Description** | Yes | Single line | One-line summary used as PR title | | **Scope** | Yes | Comma-separated paths | Files or directories this item touches | | **Tasks** | Yes | Comma-separated IDs | Plan task IDs from `## Implementation Plan` (e.g., `1.1, 1.2`) | | **Depends on** | Yes | `(none)` or `#N` refs | Prerequisite items by number | | **Linear** | No | Issue ID | Linear issue identifier (e.g., `ENG-123`) | ### HTML Comment Metadata Placed immediately after the `## Stack Decomposition` heading, before the first item. | Comment | Required | Values | Description | |---------|----------|--------|-------------| | `stack-topology` | Yes | `linear`, `parallel`, `mixed` | How items relate to each other | | `stack-trunk` | Yes | Branch name | Base branch for the stack (usually `main`) | ### Topologies Examples below show dependency relationships in shorthand for readability. Actual output uses the full field format from Section Structure above. #### Linear Each item depends on the previous. `flow:work` creates each branch on top of the last with `gt create`. ```markdown <!-- stack-topology: linear --> <!-- stack-trunk: main --> ### 1. feat/auth-types → Depends on: (none) ### 2. feat/auth-middleware → Depends on: #1 ### 3. feat/auth-routes → Depends on: #2 ``` #### Parallel Items are independent, all branching off trunk. `flow:work` checks out trunk before creating each branch. ```markdown <!-- stack-topology: parallel --> <!-- stack-trunk: main --> ### 1. docs/update-readme → Depends on: (none) ### 2. fix/lint-warnings → Depends on: (none) ### 3. test/add-coverage → Depends on: (none) ``` #### Mixed Some items are stacked, others are parallel. The `Depends on` field determines the dependency graph. Note that while `mixed` topology is defined for forward-compatibility, the `flow:work` consumer currently only supports `linear` and `parallel` topologies. ```markdown <!-- stack-topology: mixed --> <!-- stack-trunk: main --> ### 1. feat/core-types → Depends on: (none) ### 2. feat/core-logic → Depends on: #1 ### 3. feat/api-routes → Depends on: #2 ### 4. docs/migration-guide → Depends on: (none) ``` ### Standalone Invocation When `gt-stack-plan` is invoked without a plan file path, it writes the full `## Stack Decomposition` section to `.gt-stack-plan.md` in the repo root. This file uses the identical format and can be consumed by `flow:work`. ### Idempotency If `## Stack Decomposition` already exists in the target plan file, `gt-stack-plan` replaces it entirely (does not append a duplicate). The replacement preserves all content before and after the section. ### Progress Tracking When `flow:work` executes a stack, it writes a `## Stack Progress` section after `## Stack Decomposition`: ```markdown ## Stack Progress <!-- Updated by flow:work. Do not edit manually. --> - [x] 1. feat/branch-slug-one (completed 2026-03-10) - [ ] 2. feat/branch-slug-two - [ ] 3. fix/branch-slug-three ``` On resume, `flow:work` reads this section and skips completed items, cross-referencing with `gt log short` to verify branches exist.
Voir sur GitHub