Scaffold reusable DevEx workflows, release pipeline, and onboarding docs - #7
Conversation
|
@codex This PR currently has merge conflicts with Please:
Priority is maintaining a clean template foundation with minimal coupling. |
|
I checked the repo state and can’t perform the requested rebase/conflict resolution in this environment because there is no What I found
Commands run
Result
If you provide a repo state with |
There was a problem hiding this comment.
💡 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 |
There was a problem hiding this comment.
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 👍 / 👎.
| permissions: | ||
| contents: write | ||
| pull-requests: write |
There was a problem hiding this comment.
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 👍 / 👎.
| setup-node: false | ||
| run-format-check: false | ||
| run-lint: false | ||
| run-test: false |
There was a problem hiding this comment.
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 👍 / 👎.
|
Merge conflict surgery completed. Resolved conflicting documentation drift between:
Integrated changes now preserve:
The branch has been normalized against the updated template foundation and should now be substantially cleaner for merge evaluation. |
There was a problem hiding this comment.
💡 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".
| - name: Install dependencies | ||
| if: ${{ inputs.setup-node }} | ||
| run: npm ci |
There was a problem hiding this comment.
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 👍 / 👎.
| - `docs/REPOSITORY_STANDARDS.md` | ||
| - Baseline repository config: | ||
| - `.editorconfig` | ||
| - `.gitattributes` | ||
| - `.gitignore` |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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 👍 / 👎.
| fi | ||
|
|
||
| if command -v npm >/dev/null 2>&1; then | ||
| npm ci |
There was a problem hiding this comment.
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 👍 / 👎.
There was a problem hiding this comment.
@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
There was a problem hiding this comment.
Summary
- I could not perform the requested rebase because this repository snapshot still has no
originremote and nomainbranch to fetch/rebase onto. - Current state is unchanged:
- only local branch:
work - no remotes configured
- PR base SHA
470cd3ba7082b7d2e838701563cc8211efa5a98bis not present locally
- only local branch:
- 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; noAGENTS.mdfound 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 (fetch → rebase → resolve conflicts → validate → force-with-lease push) and then report the conflict/file-level decisions.
…ion,-ci/cd-contrib
Motivation
Description
/.github/workflows/reusable-quality.ymlexposing configurable inputs for checkout, Node setup, format, lint, and test commands./.github/workflows/ci.ymlthat calls the reusable workflow with conservative defaults to remain stack-agnostic./.github/workflows/release.ymlthat runsgoogleapis/release-please-action@v4for simple semantic-style release PRs/tags onmainand viaworkflow_dispatch.scripts/bootstrap.sh(generic Node-oriented bootstrap),docs/developer-setup.md(setup and CI customization guidance), and updateREADME.mdandCONTRIBUTING.mdto surface the new automation.Testing
git status --shortand committed the changes successfully withgit commit -m "Add reusable DevEx workflows and onboarding automation".nlto confirm content (.github/workflows/*,docs/developer-setup.md,scripts/bootstrap.sh,README.md,CONTRIBUTING.md).Codex Task