Skip to documentation

Consumer Automation

FastForward DevTools plays two roles at once:

  • producer: this repository ships reusable workflow templates and default configuration files;
  • consumer helper: the dev-tools:sync command copies those assets and links packaged skills and packaged project agents into other Fast Forward libraries.

Reusable Workflows Versus Consumer Stubs

This repository now separates reusable workflow entrypoints from the local composite and script actions that implement them. Consumer repositories still receive thin wrappers from resources/github-actions/*.yml , but the reusable implementation in this repository is increasingly composed from local actions in .github/actions/ .

Location Role
.github/workflows/*.yml Reusable workflows and entry workflows implemented in this repository.
resources/github-actions/*.yml Small consumer stubs that call the reusable workflows through workflow_call .
.github/actions/php/* Shared PHP helpers such as workflow PHP-version resolution, Composer setup, and local-vs-workflow DevTools runtime bootstrap.
php-fast-forward/changelog External fragment, history, version-PR and publication lifecycle called through its reusable workflow at @v0 .
.github/actions/github-pages/* Shared GitHub Pages helpers for restoring previews, removing closed pull request previews, cleaning orphaned previews, and verifying published URLs.
.github/actions/project-board/* Reusable project-automation actions for resolving the target board, inferring review status, syncing linked metadata, and transitioning items through repository delivery states.
.github/actions/review/* Reusable helpers that render deterministic rigorous-review briefs for pull requests that just became ready for review.
.github/actions/summary/* Shared helpers that append deterministic Markdown outcomes to GITHUB_STEP_SUMMARY after workflows already know their final URLs, refs, versions, or verification results.
.github/actions/wiki/* Legacy Wiki helpers for preview branches, promotion, publication validation, and cleanup, retained for unmigrated callers.
.github/dependabot.yml This repository's own Dependabot configuration.
resources/dependabot.yml Template copied into consumer repositories.
.agents/skills/* Packaged agent skills linked into consumer repositories by the skills command.
.agents/agents/* Packaged project-agent prompts linked into consumer repositories by the agents command.
.dev-tools/wiki-generated Local Markdown API documentation generated by normal sync and the direct Wiki workflow without a repository submodule.

How GitHub Pages Publishing Works

  • .github/workflows/reports.yml runs dev-tools reports through the shared workflow bootstrap.
  • The workflow delegates repeated GitHub Pages tasks to .github/actions/github-pages/* instead of keeping that shell logic inline.
  • Pull requests publish previews under previews/pr-<number>/ .
  • On the main branch, GitHub Pages serves the generated site from the root of the Pages branch.

How Wiki Publishing Works

The active .github/workflows/wiki.yml calls wiki-direct.yml . The generation job uses read-only permissions; a separate publication job runs only from main with Wiki write permissions. Consumer generation uses a full, pinned DevTools checkout with an isolated renderer installation, preserving the consumer's Composer manifest, lock file, and plugin allowlist.

In practice:

  • pull requests generate a reviewable artifact without publishing Wiki content or committing submodule pointers;
  • after merge, main generates and publishes directly to the separate Wiki repository;
  • publication replaces generated Home.md , classes/ , and functions/ content while preserving manually maintained pages outside those surfaces;
  • normal local sync writes .dev-tools/wiki-generated without --init .

The producer's wiki-maintenance-entry.yml and packaged consumer wiki-maintenance.yml are manual-only migration notices. Legacy reusable wiki-preview.yml and wiki-maintenance.yml still support unmigrated callers using the preview-branch and submodule model.

How Changelog and Project Automation Fit In

  • .github/workflows/changelog.yml calls the external Changelog lifecycle at @v0 using the official README's single-job caller with the owner-approved name: Fast Forward Changelog and publish: true overrides.
  • The external workflow validates contribution fragments and prepares the changelog/version PR titled chore: update changelog . Publication is automatic after that reviewed PR is merged. The lifecycle uses its default Ubuntu runner and GitHub token and never merges the PR itself.
  • .github/workflows/review.yml composes its ready-for-review intake from .github/actions/review/* and posts a deterministic brief that points maintainers to the packaged review-guardian agent and pull-request-review skill.
  • tests.yml , reports.yml , and legacy wiki preview and maintenance flows delegate final run summaries to .github/actions/summary/* after their final-state information is known.
  • Project-board automation is no longer just an inline workflow concern; it is a reusable local action group shared by issue, pull-request and review automation.

See Branch Protection and Bot Commits for the branch protection model, bot commit behavior, and legacy .github/wiki conflict resolution steps.

Producer Impact

Any change to resources/github-actions , resources/dependabot.yml , .agents/skills , .agents/agents , .github/workflows , or FastForward\DevTools\Console\Command\SyncCommand changes the default onboarding story for every consumer library.

Search results