Skip to content

[architecture] Extract repository-governance: review, labels and project lifecycle automation #383

Open

Description

@coisa

Proposal / validation gate: this issue records an extraction design for maintainer validation. Repository/package names are candidates. Approve the boundary and migration plan before implementation; this task does not authorize creating repositories, implementing the extraction, releases or consumer rollout.

Problem and proposal

The domain split needs an owner for genuine repository governance, not a new catch-all github-actions package. Propose php-fast-forward/repository-governance for review intake, labels, assignment and project lifecycle policy currently in review.yml, auto-assign.yml, label-sync.yml, .github/actions/review, label-sync and project-board.

Scope and exclusions

Own these domain workflows/Actions, policy configuration, validated GitHub adapters and contributor/review procedures. A PHP library/CLI is optional only if local reusable behavior exists; do not build a framework just for YAML symmetry. Changelog owns release policy; testing owns test/coverage comments; documentation owns Wiki/Pages; each uses an explicit governance adapter only when it truly needs project transitions.
Transient infrastructure retries and generic summary transport require an owner decision: keep small domain-local adapters first, extract a tiny shared helper only after demonstrated reuse and no dependency back to DevTools. Do not resurrect generic central ownership for all workflows.

Concrete tasks / acceptance

Alternatives

Organization .github keeps profile/brand/community defaults; it need not become the runtime for every domain. Existing github-actions scaffold is not evidence of deployed domain ownership.

Skills-first distribution

Move github-issues, github-pull-request and pull-request-review procedures to this domain. Convert issue-editor, issue-implementer and review-guardian role prompts into composable skills where equivalent. A specialist agent format requires demonstrated benefit; do not make a new central agents repo the default. LLM Skills installs/version-selects payloads; no replacement copy/symlink installer. See reconciled #195.

Delivery and migration gates

Architectural / Isolation Criteria

  • MUST: Core logic MUST live in dedicated services; commands/controllers only orchestrate.
  • MUST: Separate input resolution, domain transformations and rendering; keep CLI/framework I/O out of reusable behavior.
  • MUST: Support reuse/extensibility without major refactoring and deterministic, testable exits/output.
  • MUST: Separate gathering/transformation from writes/publishing; repeated execution MUST be idempotent or explicitly bounded.
  • MUST: Update README, command/config docs, skill references and synchronized consumer examples with the actual new ownership.

Repository-split decision gate

Before implementation, compare independent consumers, current code size, dependency/release cadence and maintenance cost with keeping this responsibility as a bounded module under the nearest domain or DevTools. A separate repository is a candidate, not mandatory. If reuse/lifecycle does not justify it, document the smaller grouping and avoid artificial fragmentation. Validate the recommendation with the maintainer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions