Skip to content

chore: fill template placeholders with project identity (Part A) - #24

Merged
hyperpolymath merged 1 commit into
mainfrom
claude/placeholder-sweep
Jun 21, 2026
Merged

chore: fill template placeholders with project identity (Part A)#24
hyperpolymath merged 1 commit into
mainfrom
claude/placeholder-sweep

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Why

Part A of the in-repo hygiene work (you chose "2 then 1"). The repo shipped with unfilled RSR template {{TOKEN}} placeholders across ~55 functional files; this fills them with the real project identity so the repo reads as a real project, not a template.

What

Controlled substitution over every {{...}} file except intentional templates, mapping tokens to:
hyperpolymath / gv-clade-index / Jonathan D.A. Jewell / j.d.a.jewell@open.ac.uk / MPL-2.0 / 2026 / clade-registry-api / 8080 / ghcr.io/hyperpolymath / hyperpolymath.github.io, plus derived descriptions (purpose, lang-stack, build/test cmds, invariants).

Deliberately left untouched (placeholders are intentional):

  • .machine_readable/svc/k9/template-*.k9.ncl, svc/k9/examples/*, docs/decisions/0000-template.adoc, .machine_readable/ai/PLACEHOLDERS.adoc, examples/web-project-deno.json
  • token-documentation files: PROOF-NEEDS.md, container/README.adoc, container/0.1-AI-MANIFEST.a2ml, the methodology.a2ml reject-if-contains rule, and the Justfile init recipe
  • Just's own {{lowercase}} interpolations (only the {{OWNER}} template defaults were filled)

Surgical fixes:

  • .github/SECURITY.md + CODE_OF_CONDUCT.md: removed the "delete before publishing" instruction blocks; dropped PGP key/fingerprint references (no PGP key offered — GitHub Security Advisories is the primary channel)
  • .github/.mailmap: dropped the empty alternate-email slot

Verified

  • No residual {{...}} outside the intentional set.
  • Changed TOML/YAML/CFF/JSON parse cleanly (container/compose.toml uses a pre-existing selur-compose multi-line-inline-table dialect — unchanged here, fails strict tomllib on main too).
  • Justfile diff confirmed safe (Just interpolations intact); worker tests 37/37 still pass.

Part B (workflow-hardening) follows as a separate PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UCnxjXkN6uDj9YSANuGEgR


Generated by Claude Code

Replace load-bearing {{TOKEN}} placeholders across ~55 functional files with the real
project identity (hyperpolymath / gv-clade-index / Jonathan D.A. Jewell / MPL-2.0 / 2026)
plus derived descriptions, via controlled substitution over every {{...}} file EXCEPT
intentional templates.

Left untouched on purpose (placeholders are intentional there):
- .machine_readable/svc/k9/template-*.k9.ncl, svc/k9/examples/*, docs/decisions/0000-template.adoc,
  .machine_readable/ai/PLACEHOLDERS.adoc, examples/web-project-deno.json
- token-documentation files: PROOF-NEEDS.md, container/README.adoc, container/0.1-AI-MANIFEST.a2ml,
  the methodology.a2ml reject-if-contains rule, and the Justfile init recipe
- Just's own {{lowercase}} interpolations in the Justfile (only the {{OWNER}} template
  defaults were filled)

Surgical fixes:
- .github/SECURITY.md + CODE_OF_CONDUCT.md: removed the "delete before publishing" template
  instruction blocks; dropped PGP key/fingerprint refs (no PGP key offered)
- .github/.mailmap: dropped the empty alternate-email slot

Verified: no residual {{...}} outside the intentional set; changed TOML/YAML/CFF/JSON parse
(container/compose.toml uses a pre-existing selur-compose multi-line-inline-table dialect,
unchanged here); worker tests 37/37 still pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UCnxjXkN6uDj9YSANuGEgR
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 39 issues detected

Severity Count
🔴 Critical 1
🟠 High 7
🟡 Medium 31

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in release.yml",
    "type": "missing_timeout_minutes",
    "file": "release.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in release.yml",
    "type": "missing_timeout_minutes",
    "file": "release.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in release.yml",
    "type": "missing_timeout_minutes",
    "file": "release.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in rhodibot.yml",
    "type": "missing_timeout_minutes",
    "file": "rhodibot.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in static-analysis-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "static-analysis-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in static-analysis-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "static-analysis-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in static-analysis-gate.yml",
    "type": "missing_timeout_minutes",
    "file": "static-analysis-gate.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in instant-sync.yml",
    "type": "secret_action_without_presence_gate",
    "file": "instant-sync.yml",
    "action": "peter-evans/repository-dispatch",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in scorecard.yml",
    "type": "scorecard_wrapper_missing_job_permissions",
    "file": "scorecard.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in codeql.yml",
    "type": "codeql_missing_actions_language",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath marked this pull request as ready for review June 21, 2026 10:44
@hyperpolymath
hyperpolymath merged commit 6e21ab2 into main Jun 21, 2026
13 of 14 checks passed
@hyperpolymath
hyperpolymath deleted the claude/placeholder-sweep branch June 21, 2026 10:45
Sign up for free to 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.

2 participants