Skip to content

chore: retire tooling superseded by the hub's fan-out kits - #9

Open
bamr87 wants to merge 1 commit into
mainfrom
chore/retire-superseded-tooling
Open

chore: retire tooling superseded by the hub's fan-out kits#9
bamr87 wants to merge 1 commit into
mainfrom
chore/retire-superseded-tooling

Conversation

@bamr87

Copy link
Copy Markdown
Owner

Removes three pieces of local automation that the bamr87 hub's tools/fanout.sh + templates/ now own fleet-wide, and repairs the README that an unclean split from it-journey left behind.

Net: -2610 / +123 lines.

What was removed, and what now owns each job

linting/ (setup-lint-configs.sh, validate-lint-setup.sh, README.md)

Deployed .markdownlint.json / .yamllint.yml / .shellcheckrc / .editorconfig by iterating a hardcoded list of seven /Users/bamr87/github/<repo> paths. Verification:

  • Three of those seven (ai-seed, ai-evolution-engine-seed, scripts) no longer exist under that root at all.
  • It wrote into local checkouts — nothing it produced ever reached GitHub. Someone had to hand-commit in seven repos.
  • Its README.md documented a configs/jekyll/ + configs/shell/ tree that was never committed to this repo.
  • Its output is already materialised: this repo's .shellcheckrc and .markdownlint.json are byte-identical to what setup_shell_linting() writes, so running it was a no-op rewrite.

Now owned byfanout.sh --kit standardize --artifacts editorconfig (registry-driven, additive-only, PR-based across ~40 repos). This repo's .editorconfig is already byte-identical to the hub's, confirming the fan-out is the live path. The markdown rule is enforced by --kit prose / .github/workflows/markdown-oneline.yml.

The generated config files themselves (.shellcheckrc, .markdownlint.json) are kept — only the generator is retired.

.github.sh (1,565 lines)

Generated an entire .github/ tree with hand-rolled workflow YAML. Verification:

  • Pinned to retired action versions: actions/upload-artifact@v3 and github/codeql-action@v2 (both shut down by GitHub in Jan 2025) and the archived actions/create-release@v1. It emitted immediately-failing CI — precisely the waste the fleet-pulse doctor loop exists to hunt.
  • Ran mkdir -p logs/ at source time, before argument parsing — even --help littered the caller's cwd.
  • Carried six SC2155 shellcheck warnings; dropping it clears them.
  • Last touched 2025-08-21, authored as "IT-Journey Team".

Now owned by:

.github.sh producedHub ownerAlready adopted here
CI workflowtemplates/standard-ci/ci.yml.github/workflows/ci.yml
Release workflowtemplates/release-pipeline/
Code quality / CodeQLfull bamr87/.github gate
AI evolution workflowtemplates/agent-context/claude.yml, fleet-pulse.yml.github/workflows/claude.yml
copilot-instructionsagent-context kit CLAUDE.mdCLAUDE.md
.markdownlint.json, .yamllint.yml(duplicated linting/; already in tree)
dependabot.ymlnothing — contrary to policy

That last row is the point: the fleet's ALWAYS-LATEST policy (--kit deps-latest, docs/DEPENDENCIES.md) removes the exact pins Dependabot exists to bump.

example.sh

Three-line placeholder whose stated purpose was to show "the scripts folder is being tracked by git", in a repo that tracks twenty other scripts. Not superseded — simply dead.

README rewrite

README.md was two concatenated READMEs: a short "scripts directory" blurb welded onto a full "IT-Journey Scripts Collection" doc at line 8, with four U+FFFD replacement characters where emoji had been mangled (lines 8, 20, 23, 170) — fossil evidence of an unclean split from it-journey.

Rewritten as one coherent document: a tool index verified against git ls-files, per-tool quick starts, prerequisites, the dev/lint gates, and fleet context. Mojibake fixed. Every relative link verified to resolve. Passes tools/unwrap-prose.py --check (one paragraph per line).

install.sh kept, with a disambiguating note

Not deleted — it is the standalone path for users who don't have the hub checked out. The overlap with the hub's tools/setup.sh is now documented in both the install.sh header and the README:

hub setup.shsetup_script_cli_tools()this repo's install.sh
CLI symlinks into ~/.local/binall six: forkme, stashme, git-init, project-wizard, rename-dir, create-packageproject-wizard only
chmod +x every *.shproject-init.sh only
~/.project-wizard/ config dir
env.example copy
shell rc PATH updatevia hub bootstrap

So the hub is a strict superset for CLI installation, but install.sh uniquely creates the wizard's config directory. Running both is idempotent but redundant.

Follow-ups for the hub (out of scope here — separate repo)

  1. Dangling github-setup reference. The hub's tools/setup.sh wires .github.sh as the github-setup CLI at three sites (lines 33, 919, 1089) plus help text at 1127. setup_script_cli_tools skips missing files gracefully, so nothing breaks, but the hub will keep advertising a command it can no longer install.
  2. Issue/PR templates are a genuine gap..github.sh was the only thing producing ISSUE_TEMPLATE/*.yml and PULL_REQUEST_TEMPLATE/ — the hub's standardize kit does not seed either, though the hub has its own. Worth considering an issue-templates artifact.

Verification

  • shellcheck --severity=warning install.sh — clean (the only shell file touched).
  • python3 tools/unwrap-prose.py --check — passes.
  • No U+FFFD remaining in any touched file.
  • Untouched as required: forkme.sh, FORKME/, STASHME/, project-init.sh, git_init.sh, rename-directory.sh, create_package.sh, tools/unwrap-prose.py.

🤖 Generated with Claude Code

This repo carried three pieces of local automation that the bamr87 hub's
`tools/fanout.sh` + `templates/` now own fleet-wide. Config distribution
here is registry-driven, additive-only and PR-based from the hub; these
walked hardcoded local paths and overwrote files in place.
Removed, and what now owns each job:
- `linting/setup-lint-configs.sh` + `linting/validate-lint-setup.sh`
(+ `linting/README.md`). Deployed `.markdownlint.json`/`.yamllint.yml`/
`.shellcheckrc`/`.editorconfig` by iterating a hardcoded list of seven
`/Users/bamr87/github/<repo>` paths, three of which (ai-seed,
ai-evolution-engine-seed, scripts) no longer exist there at all —
it wrote into local checkouts, so nothing ever reached GitHub.
NOW: `fanout.sh --kit standardize --artifacts editorconfig` (this
repo's `.editorconfig` is already byte-identical to the hub's), with
the markdown rule enforced by `--kit prose` /
`.github/workflows/markdown-oneline.yml`. The `.shellcheckrc` and
`.markdownlint.json` these scripts generated are already committed at
the repo root and are kept — only the generator is retired.
Its `linting/README.md` also documented a `configs/jekyll|shell/` tree
that was never committed.
- `.github.sh`. Generated a whole `.github/` tree with hand-rolled
workflow YAML pinned to retired action versions —
`actions/upload-artifact@v3` and `github/codeql-action@v2` (both shut
down by GitHub in Jan 2025) and the archived
`actions/create-release@v1` — so it emitted immediately-failing CI,
the exact waste the fleet-pulse doctor loop exists to hunt. It also
ran `mkdir -p logs/` at source time, before argument parsing, so even
`--help` littered the caller's cwd.
NOW: CI → `templates/standard-ci/ci.yml` (adopted here as
`.github/workflows/ci.yml`); releases → `templates/release-pipeline/`;
code quality/CodeQL → the full `bamr87/.github` gate; AI/evolution →
`templates/agent-context/claude.yml` (adopted here as
`.github/workflows/claude.yml`) plus the hub's `fleet-pulse.yml`;
copilot-instructions → the agent-context kit's `CLAUDE.md`.
Its `dependabot.yml` output additionally contradicted the fleet's
ALWAYS-LATEST policy (`--kit deps-latest`, docs/DEPENDENCIES.md),
which removes the pins Dependabot exists to bump.
Dropping it also clears six SC2155 shellcheck warnings.
- `example.sh`. A three-line placeholder whose stated purpose was to
show "the scripts folder is being tracked by git", in a repo that now
tracks twenty other scripts. Not superseded — simply dead.
Also in this change:
- `README.md` was two concatenated READMEs — a short "scripts directory"
blurb welded onto a full "IT-Journey Scripts Collection" doc, with
four U+FFFD replacement characters where emoji had been mangled by an
unclean split from it-journey. Rewritten as one document describing
what this repo actually contains today, with a tool index verified
against the tracked file list and the mojibake fixed.
- `install.sh` is KEPT — it is the standalone path for users who don't
have the hub checked out. Its header and the README now state which
installer to use when: the hub's `tools/setup.sh`
(`setup_script_cli_tools`) is a strict superset for CLI installation,
symlinking all six commands, while `install.sh` wires up
`project-wizard` alone but uniquely creates `~/.project-wizard/` and
the `env.example` copy.
- `CLAUDE.md` drops the entries for the removed files and records why
they must not be re-added.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bamr87 added a commit to bamr87/bamr87 that referenced this pull request Aug 10, 2026
- tools/setup.sh still wired $(printf '%s' '.github.sh') as the $(printf '%s' 'github-setup') CLI. That
generator was removed from projects/scripts (bamr87/scripts#9) because it
emitted workflows pinned to actions GitHub shut down in Jan 2025. The hub was
advertising a command it could no longer install.
- dash daily help still promised a failure work order it no longer produces.
- templates/schema/VERSION recorded upstream-commit 04b0980, which was the last
commit to TOUCH the linter rather than the commit the copy tracks. The
vendored file is byte-identical to upstream HEAD (ce09aeb). Records the real
provenance, the new enforcement, and the honest gap: the hub vendors this
linter to ~40 repos with no local test coverage.
bamr87 added a commit to bamr87/bamr87 that referenced this pull request Aug 10, 2026
- tools/setup.sh still wired `.github.sh` as the `github-setup` CLI. That
generator was removed from projects/scripts (bamr87/scripts#9) because it
emitted workflows pinned to actions GitHub shut down in January 2025, so the
hub was advertising a command it could no longer install.
- `dash daily` help still promised a failure work order it no longer produces.
- templates/schema/VERSION recorded upstream-commit 04b0980, which was the last
commit to TOUCH the linter rather than the commit the vendored copy tracks.
The file is byte-identical to upstream HEAD (ce09aeb). Now records the real
provenance, the new check-(i) enforcement, and an honest gap: the hub vendors
this linter to ~40 repos with no local test coverage, so a re-vendor is
verified only by the hub's own pyramid linting clean.
Related: bamr87/SCHEMA#4 fixes a real linter bug this audit surfaced -- a schema
that registers its own SCHEMA.md row was reported as missing that file. Sent
upstream rather than patched into the vendored copy, which is exactly the policy
check (i) now enforces.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@bamr87