Context
While carrying the repo-config/ baseline and the source-only publisher into
ptr727/Financial-Modeling (its #14 standup, PR #15), Copilot review surfaced several template-side
robustness gaps that bite any partial downstream carry (a repo that carries only its own
workflow-model variant). Financial-Modeling has adapted locally (owner decision); filing the
template-side fixes here.
1. configure.sh: fail fast on a missing ruleset payload
The apply loop skips a missing file silently ([ -e "$file" ] || continue) and still reports
"Configuration applied". A downstream repo carries only its model's develop variant, so e.g. running
configure.sh <repo> operational in a release-variant repo silently skips the develop ruleset —
a partially-applied configuration that looks successful.
Fix applied downstream (suggest adopting):
for file in "$develop_ruleset" "$script_dir/main.json"; do
if [ ! -e "$file" ]; then
echo "Ruleset payload $file not found; aborting to avoid a partially-applied configuration." >&2
exit 1
fi
...
2. repo-config/README.md breaks on a partial downstream carry
Carried verbatim, it ships:
- dead links to
../AUDIT.md and ../spec/secrets.json (hub-only files, 404 downstream);
- a ruleset-regen snippet hardcoding
repos/ptr727/ProjectTemplate (regenerates from the hub's
rulesets, not the carrying repo's);
- an
operational/develop.json reference implying a file the downstream repo doesn't carry;
- a Secrets section describing publish mechanisms (NuGet/PyPI OIDC, Docker tokens) that don't apply
to a source-only repo.
Suggest: either document the downstream adaptation explicitly (which sections/links a carrying
repo localizes), or restructure the carried README to be downstream-neutral (parameterize the repo
in the regen snippet, drop hub-only cross-links).
Fleet policy note (owner direction): the hub is a private repo and should not be URL-linked
from downstream repos — cross-references should be plain-text mentions. Worth stating in the carry
guidance so downstream docs don't accumulate links that 404 for anyone without hub access.
3. publish-release.yml (dispatch-only instance): vestigial skip logic/wording
In the standalone dispatch-only publisher, the release-create condition
if: exists == 'false' || github.event_name == 'workflow_dispatch' is always true (every trigger is
a dispatch), and the step comment says "Skip create on an existing tag" although the dispatch path
never skips — it refreshes (create-or-update). Both are inherited from the multi-trigger reusable
form where they are meaningful.
Suggest: in the dispatch-only instance, either simplify the condition away or reword the
comment so the behavior reads as create-or-refresh (downstream reviewers flag the mismatch).
References
Context
While carrying the
repo-config/baseline and the source-only publisher intoptr727/Financial-Modeling (its #14 standup, PR #15), Copilot review surfaced several template-side
robustness gaps that bite any partial downstream carry (a repo that carries only its own
workflow-model variant). Financial-Modeling has adapted locally (owner decision); filing the
template-side fixes here.
1.
configure.sh: fail fast on a missing ruleset payloadThe apply loop skips a missing file silently (
[ -e "$file" ] || continue) and still reports"Configuration applied". A downstream repo carries only its model's develop variant, so e.g. running
configure.sh <repo> operationalin a release-variant repo silently skips thedevelopruleset —a partially-applied configuration that looks successful.
Fix applied downstream (suggest adopting):
2.
repo-config/README.mdbreaks on a partial downstream carryCarried verbatim, it ships:
../AUDIT.mdand../spec/secrets.json(hub-only files, 404 downstream);repos/ptr727/ProjectTemplate(regenerates from the hub'srulesets, not the carrying repo's);
operational/develop.jsonreference implying a file the downstream repo doesn't carry;to a source-only repo.
Suggest: either document the downstream adaptation explicitly (which sections/links a carrying
repo localizes), or restructure the carried README to be downstream-neutral (parameterize the repo
in the regen snippet, drop hub-only cross-links).
Fleet policy note (owner direction): the hub is a private repo and should not be URL-linked
from downstream repos — cross-references should be plain-text mentions. Worth stating in the carry
guidance so downstream docs don't accumulate links that 404 for anyone without hub access.
3.
publish-release.yml(dispatch-only instance): vestigial skip logic/wordingIn the standalone dispatch-only publisher, the release-create condition
if: exists == 'false' || github.event_name == 'workflow_dispatch'is always true (every trigger isa dispatch), and the step comment says "Skip create on an existing tag" although the dispatch path
never skips — it refreshes (create-or-update). Both are inherited from the multi-trigger reusable
form where they are meaningful.
Suggest: in the dispatch-only instance, either simplify the condition away or reword the
comment so the behavior reads as create-or-refresh (downstream reviewers flag the mismatch).
References
review surfaced these; local adaptations in commits
12be024/af019fa)