issue-14: add create-issues skill and delegate init-project's issue creation to it #15

Merged
Owner

Closes #14

Summary

Adds a new create-issues skill that converts a local implementation plan
into a milestone-structured set of fully self-contained issues on Forgejo,
GitLab, or GitHub, and updates init-project to delegate to it instead of
its own inline flat-list issue-creation logic.

Changes

skills/create-issues/SKILL.md (new)

  • Input: local implementation plan .md file, found by searching the
    current directory (mirrors init-project's existing Phase 1.1 pattern).
  • Host detection: checks piloop-config.yaml's git-host key first (if
    present), else auto-detects from git remote get-url origin.
  • Per-host tooling: gh for GitHub, the forgejo pi extension for
    Forgejo issue/PR operations (fj as a documented fallback for anything the
    extension doesn't cover), and inline glab commands for GitLab (no
    dedicated GitLab CLI skill exists yet in this repo).
  • Milestone modeling per host:
    • GitHub: simulated via milestone:<slug> labels.
    • Forgejo: native, via new forgejo_milestone_create /
      forgejo_list_milestones / forgejo_label_create tools that the
      forgejo extension does not yet have — the skill fails fast with a
      clear error if these tools are unavailable rather than silently
      degrading to labels (tracked separately in #13).
    • GitLab: native via glab milestone create.
  • Step granularity: each step/issue is sized as the smallest
    independently-verifiable unit of work — bounded file/module scope, split
    further if it would need more than ~5–7 acceptance criteria.
  • Self-contained issue template: Summary, Background (with explicit
    Depends on: <step> dependency notes), Documentation Required (lists
    researched doc URLs + short summaries and the docs/reference/<package- slug>/ folder convention — a separate download agent is expected to
    vendor the actual docs before implementation starts), Implementation
    Details, Acceptance Criteria, and Test Plan.
  • Dependency backfilling: dependency notes are written by step name at
    draft time, then backfilled with real issue number links once all of a
    milestone's issues exist.
  • Mutation safety: full preview of all milestones/issues in chat with an
    explicit yes/no confirmation, then idempotent skip-existing-by-title
    creation so re-runs are safe.

skills/init-project/SKILL.md (modified)

  • Phase 3 renamed to "Create the Repository-Setup Issue, Then Delegate to
    create-issues".
  • init-project still creates its own repository-setup issue directly
    (unchanged: enhancement label, drives its own Phase 4 branch naming) —
    this issue is kept conceptually separate from the plan's actual feature
    content.
  • The plan's actual milestones/steps are now delegated to the new
    create-issues skill, run independently with its own preview/confirm/
    idempotency flow. There is no numeric coupling between the setup issue and
    create-issues' output.
  • Quick Reference section updated to reflect the new flow.

Testing

  • Read through both SKILL.md files for internal consistency — no
    dangling references to the old inline "parse plan into issues" logic
  • N/A — these are skill definition/documentation files; no code to run

Checklist

  • Self-reviewed the diff
  • Follows this repo's skill-file conventions (frontmatter, phased
    structure, Quick Reference)
  • References the related tracking issue (#13) for the deferred
    forgejo-extension dependency
Closes #14 ## Summary Adds a new `create-issues` skill that converts a local implementation plan into a milestone-structured set of fully self-contained issues on Forgejo, GitLab, or GitHub, and updates `init-project` to delegate to it instead of its own inline flat-list issue-creation logic. ## Changes ### `skills/create-issues/SKILL.md` (new) - **Input**: local implementation plan `.md` file, found by searching the current directory (mirrors `init-project`'s existing Phase 1.1 pattern). - **Host detection**: checks `piloop-config.yaml`'s `git-host` key first (if present), else auto-detects from `git remote get-url origin`. - **Per-host tooling**: `gh` for GitHub, the `forgejo` pi extension for Forgejo issue/PR operations (`fj` as a documented fallback for anything the extension doesn't cover), and inline `glab` commands for GitLab (no dedicated GitLab CLI skill exists yet in this repo). - **Milestone modeling per host**: - GitHub: simulated via `milestone:<slug>` labels. - Forgejo: native, via new `forgejo_milestone_create` / `forgejo_list_milestones` / `forgejo_label_create` tools that the `forgejo` extension does not yet have — the skill **fails fast** with a clear error if these tools are unavailable rather than silently degrading to labels (tracked separately in #13). - GitLab: native via `glab milestone create`. - **Step granularity**: each step/issue is sized as the smallest independently-verifiable unit of work — bounded file/module scope, split further if it would need more than ~5–7 acceptance criteria. - **Self-contained issue template**: Summary, Background (with explicit `Depends on: <step>` dependency notes), Documentation Required (lists researched doc URLs + short summaries and the `docs/reference/<package- slug>/` folder convention — a separate download agent is expected to vendor the actual docs before implementation starts), Implementation Details, Acceptance Criteria, and Test Plan. - **Dependency backfilling**: dependency notes are written by step name at draft time, then backfilled with real issue number links once all of a milestone's issues exist. - **Mutation safety**: full preview of all milestones/issues in chat with an explicit yes/no confirmation, then idempotent skip-existing-by-title creation so re-runs are safe. ### `skills/init-project/SKILL.md` (modified) - Phase 3 renamed to "Create the Repository-Setup Issue, Then Delegate to create-issues". - `init-project` still creates its own repository-setup issue directly (unchanged: `enhancement` label, drives its own Phase 4 branch naming) — this issue is kept conceptually separate from the plan's actual feature content. - The plan's actual milestones/steps are now delegated to the new `create-issues` skill, run independently with its own preview/confirm/ idempotency flow. There is no numeric coupling between the setup issue and `create-issues`' output. - Quick Reference section updated to reflect the new flow. ## Testing - [x] Read through both `SKILL.md` files for internal consistency — no dangling references to the old inline "parse plan into issues" logic - [ ] N/A — these are skill definition/documentation files; no code to run ## Checklist - [x] Self-reviewed the diff - [x] Follows this repo's skill-file conventions (frontmatter, phased structure, Quick Reference) - [x] References the related tracking issue (#13) for the deferred forgejo-extension dependency
- Add skills/create-issues/SKILL.md: converts a local implementation plan
  (.md) into a milestone-structured set of fully self-contained issues on
  Forgejo, GitLab, or GitHub. Covers local-plan input, host detection
  (piloop-config.yaml git-host override, else git-remote auto-detect),
  per-host tooling (gh, the forgejo pi extension, glab), milestone modeling
  per host (GitHub = milestone:<slug> labels, Forgejo = native via the
  forgejo extension's milestone/label tools with a fail-fast dependency
  check, GitLab = native glab milestone create), step granularity rules,
  a self-contained issue template (Summary / Background / Documentation
  Required / Implementation Details / Acceptance Criteria / Test Plan),
  dependency backfilling, and preview+confirm+idempotent creation.
- Update skills/init-project/SKILL.md Phase 3 (and Quick Reference) so
  init-project keeps creating its own repository-setup issue directly,
  but delegates the plan's actual milestones/steps to the new
  create-issues skill instead of its own inline flat-list logic.

Related: #13 tracks the separate forgejo-extension dependency (milestone
create/list + label create tools) required at runtime by create-issues'
Forgejo path.
david merged commit 193d0ae269 into main 2026-08-18 01:56:43 +00:00
david deleted branch feature/issue-14/add-create-issues-skill-delegate-init-project-issue-creation 2026-08-18 01:56:43 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
david/pi-extensions-and-skills!15
No description provided.