Skip to content

Scaffold reusable DevEx workflows, release pipeline, and onboarding docs - #7

Merged
saltines321-debug merged 4 commits into
mainfrom
codex/github-mention-template-devex]-automation,-ci/cd-contrib
May 22, 2026
Merged

Scaffold reusable DevEx workflows, release pipeline, and onboarding docs#7
saltines321-debug merged 4 commits into
mainfrom
codex/github-mention-template-devex]-automation,-ci/cd-contrib

Conversation

@saltines321-debug

Copy link
Copy Markdown
Owner

Motivation

  • Provide a portable, reusable quality CI pipeline and onboarding defaults for template-based repositories.
  • Give future projects a lightweight semantic release path and clear local bootstrap guidance without making stack-specific assumptions.

Description

  • Add a reusable GitHub Actions workflow /.github/workflows/reusable-quality.yml exposing configurable inputs for checkout, Node setup, format, lint, and test commands.
  • Add a CI entry workflow /.github/workflows/ci.yml that calls the reusable workflow with conservative defaults to remain stack-agnostic.
  • Add a release workflow /.github/workflows/release.yml that runs googleapis/release-please-action@v4 for simple semantic-style release PRs/tags on main and via workflow_dispatch.
  • Add onboarding assets including scripts/bootstrap.sh (generic Node-oriented bootstrap), docs/developer-setup.md (setup and CI customization guidance), and update README.md and CONTRIBUTING.md to surface the new automation.

Testing

  • Verified working tree and staged changes with git status --short and committed the changes successfully with git commit -m "Add reusable DevEx workflows and onboarding automation".
  • Inspected the created workflow and docs files using file listings and nl to confirm content (.github/workflows/*, docs/developer-setup.md, scripts/bootstrap.sh, README.md, CONTRIBUTING.md).
  • No language-specific unit tests were run by these changes because the updates are scaffolding and documentation only, and the verification commands above succeeded.

Codex Task

Copy link
Copy Markdown
Owner Author

@codex This PR currently has merge conflicts with main.

Please:

  1. Rebase/sync the branch against the latest main
  2. Resolve all merge conflicts cleanly
  3. Preserve the reusable/template-oriented architecture
  4. Ensure workflows and docs remain generic and non-project-specific
  5. Re-run validation after conflict resolution

Priority is maintaining a clean template foundation with minimal coupling.

@chatgpt-codex-connector

Copy link
Copy Markdown

I checked the repo state and can’t perform the requested rebase/conflict resolution in this environment because there is no main branch (local or remote) to sync against.

What I found

  • Current branch is work.
  • Only branch present is work.
  • No Git remotes are configured, so there is no way to fetch “latest main”.
  • The PR base SHA from metadata (470cd3b…) is not present in this local repo.

Commands run

  • git status --short; git branch --show-current; git remote -v
  • git branch --list; git log --oneline --decorate --max-count=5 --all
  • git cat-file -t 470cd3ba7082b7d2e838701563cc8211efa5a98b && echo exists || echo missing (reported missing)

Result

  • ⚠️ Rebase/sync against main: blocked by missing main/remote.
  • ⚠️ Conflict resolution: cannot be executed without a target main.
  • ✅ No changes were made to files, so no commit and no follow-up PR were created.

If you provide a repo state with origin/main available (or add the remote here), I can immediately do the rebase, resolve conflicts, rerun validation, commit, and open the follow-up PR.

View task →

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 363a6bf160

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

- name: Release Please
uses: googleapis/release-please-action@v4
with:
release-type: simple

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use a release type compatible with repository layout

Switching release-please-action to release-type: simple will break release PR generation once a releasable commit lands, because the simple strategy expects and updates a version.txt file, but this repository does not include one (the tree in this commit has CHANGELOG.md but no version.txt). That makes the default release workflow non-functional unless the strategy or tracked version file is changed.

Useful? React with 👍 / 👎.

Comment on lines +9 to +11
permissions:
contents: write
pull-requests: write

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add required issues permission for release-please

The workflow grants contents and pull-requests but omits issues: write, which release-please-action uses for PR labeling (autorelease:*) under its default settings. In repositories using least-privilege GITHUB_TOKEN permissions, this causes release runs to fail when trying to label/update the release PR.

Useful? React with 👍 / 👎.

Comment thread .github/workflows/ci.yml
Comment on lines +16 to +19
setup-node: false
run-format-check: false
run-lint: false
run-test: false

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Enable actual checks in default CI workflow

This CI entrypoint disables every validation input (setup-node, run-format-check, run-lint, and run-test are all false), so on both pull_request and push events the required quality check can pass after only checkout with no quality signal. That creates false-green protection status and allows regressions to merge unnoticed unless every consumer manually edits the workflow first.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Merge conflict surgery completed.

Resolved conflicting documentation drift between:

  • the newly merged OSS template baseline
  • the DevEx/automation branch

Integrated changes now preserve:

  • professional OSS template structure
  • reusable automation workflows
  • semantic-release scaffolding
  • onboarding documentation
  • generic cross-project portability

The branch has been normalized against the updated template foundation and should now be substantially cleaner for merge evaluation.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 722865fa1a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +70 to +72
- name: Install dependencies
if: ${{ inputs.setup-node }}
run: npm ci

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Make dependency install command configurable

The reusable workflow hard-codes npm ci whenever setup-node is enabled, so repositories that use Node but not npm (for example pnpm/yarn) will fail before their configured format-command, lint-command, or test-command can run. This breaks the template’s stated stack-agnostic configurability in real CI usage unless consumers also rewrite the workflow, so the install step should be optional or driven by an input command.

Useful? React with 👍 / 👎.

Comment thread README.md
Comment on lines +30 to +34
- `docs/REPOSITORY_STANDARDS.md`
- Baseline repository config:
- `.editorconfig`
- `.gitattributes`
- `.gitignore`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove references to files not shipped in template

The README now declares several components as included (docs/REPOSITORY_STANDARDS.md, .editorconfig, .gitattributes, .gitignore), but those files are not present in this repository state, so users following the documented baseline get dead references and miss expected defaults. Please either add the referenced files or adjust the included-components list to match what is actually shipped.

Useful? React with 👍 / 👎.

uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
cache: npm

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Make setup-node cache strategy configurable

The reusable workflow always sets cache: npm when setup-node is enabled, which can break repositories that do not use npm lockfiles; actions/setup-node resolves cache keys from lockfiles and fails when the expected files are absent. In this template that means CI can fail before any project commands run unless consumers edit the workflow, so cache behavior should be optional or parameterized by package manager/lockfile path.

Useful? React with 👍 / 👎.

Comment thread scripts/bootstrap.sh
fi

if command -v npm >/dev/null 2>&1; then
npm ci

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fall back when lockfile is missing in bootstrap

The bootstrap script unconditionally runs npm ci whenever package.json exists, but npm ci requires an existing package-lock.json/npm-shrinkwrap.json; without one it exits with an error. That makes the documented first-run bootstrap path fail for Node repos that have not committed a lockfile yet, so the script should either check for a lockfile first or fall back to npm install.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codex rebase this branch onto the latest main and resolve all merge conflicts.

Requirements:

  • fetch latest origin/main
  • preserve functionality from both branches where possible
  • keep newer architecture changes
  • preserve security and dependency updates
  • remove all conflict markers
  • run lint/tests if available
  • push with --force-with-lease

Workflow:

git fetch origin
git checkout
git rebase origin/main

resolve conflicts

git add .
git rebase --continue
git push --force-with-lease

After completion, summarize:

  • conflicted files
  • resolution decisions
  • any behavioral changes introduced

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

  • I could not perform the requested rebase because this repository snapshot still has no origin remote and no main branch to fetch/rebase onto.
  • Current state is unchanged:
    • only local branch: work
    • no remotes configured
    • PR base SHA 470cd3ba7082b7d2e838701563cc8211efa5a98b is not present locally
  • Because rebasing was blocked, there were no conflict resolutions, no new commit, and no follow-up PR creation via make_pr.

Requested post-rebase report

  • Conflicted files: none (rebase did not start).
  • Resolution decisions: none (no merge/rebase context available).
  • Behavioral changes introduced: none (working tree unchanged).

Testing

  • pwd; rg --files -g 'AGENTS.md' (confirmed repo path; no AGENTS.md found in scope)
  • git status --short; git branch -vv; git remote -v; git rev-parse --abbrev-ref HEAD
  • git branch --list; git show-ref --heads --tags | head -n 20; git cat-file -t 470cd3ba7082b7d2e838701563cc8211efa5a98b 2>/dev/null || echo missing-base-sha

If you provide a repo state with origin/main available, I can immediately run the exact workflow (fetchrebase → resolve conflicts → validate → force-with-lease push) and then report the conflict/file-level decisions.

View task →

@saltines321-debug
saltines321-debug merged commit 5b54005 into main May 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant