From 66774bf16c9abe5d2ff7f77f77c24f15623f4ae9 Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:47:42 +0100 Subject: [PATCH 1/2] docs: propose operating-doctrine companion (solutions at source) Proposed-for-ratification companion stating the operating doctrine in relation to the manifesto's three pillars: 'solutions at source' (fix the canonical origin, mind every up/downstream), with 'holes before goals' and 'fail loudly'. Clearly marked NOT-yet-canon; for the owner to adopt, reword, or reject. Co-Authored-By: Claude Opus 4.8 --- docs/RSR-PHILOSOPHY.adoc | 64 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 docs/RSR-PHILOSOPHY.adoc diff --git a/docs/RSR-PHILOSOPHY.adoc b/docs/RSR-PHILOSOPHY.adoc new file mode 100644 index 0000000..ca2ab5e --- /dev/null +++ b/docs/RSR-PHILOSOPHY.adoc @@ -0,0 +1,64 @@ +// SPDX-License-Identifier: CC-BY-SA-4.0 +// Copyright (c) 2026 Jonathan D.A. Jewell += Operating Doctrine — Solutions at Source (and its siblings) +:icons: font + +[NOTE] +==== +*Status: proposed for owner ratification.* This is a draft companion to the +manifesto, contributed for the owner to adopt, reword into their own voice, or +reject. It is not yet canon. The canonical machine-facing summary lives in the +estate arrival-pack (projected into every `CLAUDE.md`); the canonical prose home +is `hyperpolymath/standards` (`RSR-PHILOSOPHY.adoc`). This file is where the +manifesto would state the same doctrine in the owner's register. +==== + +The manifesto's three pillars — machine-readable governance, neurosymbolic +verification, post-disciplinary praxis — describe *what the estate is for*. The +operating doctrine describes *how work is actually undertaken* within it. Three +principles carry most of that weight, because each names a trap that fluent, +plausible work falls into. + +== Solutions at source + +Fix the canonical, upstream origin of a problem — never patch the downstream +symptom. A defect that appears in many places is almost never many problems; it +is one problem at a source, expressed many times. Patching the copies while +leaving the source untouched guarantees the problem returns, and makes it look +solved. + +This is the same instinct the manifesto applies to value itself: do not assert +the surface, structure the thing that produces it. A symptom patched in isolation +is a value backed by authority — _it looks fixed, trust me_ — where a source fixed +with its up- and down-streams accounted for is a value justified by the +construction that produced it. So the principle carries two obligations: + +* *Find the source* — trace the problem to where it is actually defined (the + template, the generator, the canon) and fix it there. The estate's shape, + `standards → rsr-template-repo → (every repo)`, makes that locus explicit. +* *Mind every up- and down-stream* — a change at a source propagates; know what + feeds it and what depends on it, and make the change safe across all of them. A + fix that breaks a downstream consumer is not yet a fix. + +Where a source cannot be reached in one pass, remediate the downstream _and_ +record the source fix as work still owed — never let the patch masquerade as the +cure. + +== Holes before goals + +Fix soundness holes before features, optimisation, or documentation. A hole is +anywhere the system can be wrong without saying so. Let the holes set the agenda; +a goal reached on top of a hole is not reached. + +== Always fail loudly + +No silent green. A check that cannot fail is not a check; a fallback that hides a +broken precondition is a forged result — the exact category error the second +pillar rejects, fluency mistaken for proof. Prefer a build that breaks to a build +that lies. + +== Relation to the canon + +* `hyperpolymath/standards` — `RSR-PHILOSOPHY.adoc`, the canonical prose source. +* `hyperpolymath/rsr-template-repo` — `RSR-PHILOSOPHY.adoc` plus the arrival-pack + that projects the Doctrine summary into every repository's `CLAUDE.md`. From dd21ed75ef2b90e3ca3ea637f808570f2c13f88e Mon Sep 17 00:00:00 2001 From: hyperpolymath <6759885+hyperpolymath@users.noreply.github.com> Date: Tue, 7 Jul 2026 16:11:05 +0100 Subject: [PATCH 2/2] fix(ci): estate-wide structural CI fixes - grant secret-scanner reusable its requested job permissions - drop invalid timeout-minutes on reusable-call jobs - drop hashFiles() from job-level if: expressions --- .github/workflows/governance.yml | 1 - .github/workflows/scorecard-enforcer.yml | 1 - .github/workflows/secret-scanner.yml | 4 ++++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index 420ed9c..f143f3c 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -32,4 +32,3 @@ permissions: jobs: governance: uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@d135b05bfc647d0c0fbfedc7e80f37ea50f49236 - timeout-minutes: 10 diff --git a/.github/workflows/scorecard-enforcer.yml b/.github/workflows/scorecard-enforcer.yml index 8249007..7ca589d 100644 --- a/.github/workflows/scorecard-enforcer.yml +++ b/.github/workflows/scorecard-enforcer.yml @@ -89,7 +89,6 @@ jobs: # Check specific high-priority items check-critical: runs-on: ubuntu-latest - timeout-minutes: 15 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 diff --git a/.github/workflows/secret-scanner.yml b/.github/workflows/secret-scanner.yml index d713d06..118b9a1 100644 --- a/.github/workflows/secret-scanner.yml +++ b/.github/workflows/secret-scanner.yml @@ -15,5 +15,9 @@ permissions: jobs: scan: + permissions: + contents: read + pull-requests: write + actions: read uses: hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml@d135b05bfc647d0c0fbfedc7e80f37ea50f49236 secrets: inherit