diff --git a/.bot_directives/echidnabot.a2ml b/.bot_directives/echidnabot.a2ml index a1453166..a3246b8a 100644 --- a/.bot_directives/echidnabot.a2ml +++ b/.bot_directives/echidnabot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # echidnabot.a2ml — Directives for echidnabot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "echidnabot" role = "code-quality" diff --git a/.bot_directives/finishbot.a2ml b/.bot_directives/finishbot.a2ml index 8085cd5c..d708fee4 100644 --- a/.bot_directives/finishbot.a2ml +++ b/.bot_directives/finishbot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # finishbot.a2ml — Directives for finishbot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "finishbot" role = "task-completion" diff --git a/.bot_directives/glambot.a2ml b/.bot_directives/glambot.a2ml index c129db49..66af9a60 100644 --- a/.bot_directives/glambot.a2ml +++ b/.bot_directives/glambot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # glambot.a2ml — Directives for glambot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "glambot" role = "documentation" diff --git a/.bot_directives/rhodibot.a2ml b/.bot_directives/rhodibot.a2ml index 868e9d87..5e6f5f3d 100644 --- a/.bot_directives/rhodibot.a2ml +++ b/.bot_directives/rhodibot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # rhodibot.a2ml — Directives for rhodibot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "rhodibot" role = "git-operations" diff --git a/.bot_directives/seambot.a2ml b/.bot_directives/seambot.a2ml index 1b06a5c0..0f5c04a5 100644 --- a/.bot_directives/seambot.a2ml +++ b/.bot_directives/seambot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # seambot.a2ml — Directives for seambot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "seambot" role = "integration" diff --git a/.bot_directives/sustainabot.a2ml b/.bot_directives/sustainabot.a2ml index e014b58e..e33ce819 100644 --- a/.bot_directives/sustainabot.a2ml +++ b/.bot_directives/sustainabot.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # sustainabot.a2ml — Directives for sustainabot in odds-and-sods-package-manager +project = "odds-and-sods-package-manager" + [identity] bot = "sustainabot" role = "dependency-updates" diff --git a/.github/workflows/rsr-antipattern.yml b/.github/workflows/rsr-antipattern.yml index a3cc182a..e1f109cb 100644 --- a/.github/workflows/rsr-antipattern.yml +++ b/.github/workflows/rsr-antipattern.yml @@ -137,83 +137,6 @@ jobs: print(f"✅ No TypeScript files outside allowlist ({len(exemption_patterns)} per-repo exemption(s) parsed).") PYEOF - # Universal builtin allowlist — bridges that need no per-repo declaration. - # Files matching any of these patterns are always allowed. - BUILTIN_GLOBS = [ - '*.d.ts', - '**/bindings/**', - '**/tests/**', '**/test/**', - '**/scripts/**', - '**/mcp-adapter/**', - '**/*vscode*/**', - '**/cli/**', - '**/mod.ts', - '**/lsp-server.ts', '**/lsp_server.ts', '**/lsp.ts', '**/*-lsp.ts', - '**/deno-*/**', - '**/node_modules/**', - '**/vendor/**', - '**/examples/**', - '**/ffi/**', - ] - - # Per-repo exemptions parsed from .claude/CLAUDE.md "TypeScript Exemptions" table. - # Single source of truth — adding a row here unblocks CI for that path. - # Format expected: - # ### TypeScript Exemptions ... - # | Path | Files | Rationale | Unblock condition | - # |---|---|---|---| - # | `path/to/file.ts` | 1 | ... | ... | - # | `dir/*.ts` | 6 | ... | ... | - exemptions = [] - claude_md = pathlib.Path('.claude/CLAUDE.md') - if claude_md.exists(): - in_table = False - for line in claude_md.read_text(encoding='utf-8').splitlines(): - if re.search(r'TypeScript [Ee]xemptions', line): - in_table = True - continue - if in_table and line.startswith(('### ', '## ', '# ')): - break - if in_table and line.startswith('|'): - m = re.match(r'\|\s*`([^`]+)`', line) - if m: - exemptions.append(m.group(1)) - - # Find all .ts and .tsx files - found = [] - for ext in ('ts', 'tsx'): - found.extend(str(p) for p in pathlib.Path('.').rglob(f'*.{ext}')) - - def allowed(path): - p = path.lstrip('./') - for g in BUILTIN_GLOBS + exemptions: - if fnmatch.fnmatchcase(p, g): - return True - # also treat glob ending with / as a directory prefix - base = g.rstrip('/').rstrip('*').rstrip('/') - if base and (p == base or p.startswith(base + '/')): - return True - return False - - bad = sorted(f for f in found if not allowed(f)) - if bad: - print("❌ TypeScript files detected outside the allowlist.\n") - for f in bad: - print(f" {f}") - print() - print("To resolve, either:") - print(" (a) migrate the file to AffineScript") - print(" (see Human_Programming_Guide.adoc migration chapter), OR") - print(" (b) move it to an allowlisted bridge path") - print(" (bindings/, tests/, scripts/, mcp-adapter/, *vscode*/, cli/, deno-*/, etc.), OR") - print(" (c) add an entry to the 'TypeScript Exemptions' table in .claude/CLAUDE.md") - print(" with rationale + unblock condition.") - if exemptions: - print(f"\n(Currently {len(exemptions)} exemption(s) parsed from .claude/CLAUDE.md.)") - sys.exit(1) - print(f"✅ No TypeScript files outside allowlist ({len(exemptions)} per-repo exemption(s) parsed).") - PYEOF - - name: Check for Go run: | if find . -name "*.go" | grep -q .; then diff --git a/.machine_readable/6a2/AGENTIC.a2ml b/.machine_readable/6a2/AGENTIC.a2ml index 09aa2c2f..00bdf7a3 100644 --- a/.machine_readable/6a2/AGENTIC.a2ml +++ b/.machine_readable/6a2/AGENTIC.a2ml @@ -4,6 +4,8 @@ # AGENTIC.a2ml — AI agent constraints and capabilities # Defines what AI agents can and cannot do in this repository. +project = "odds-and-sods-package-manager" + [metadata] version = "0.1.0" last-updated = "2026-03-16" diff --git a/.machine_readable/6a2/NEUROSYM.a2ml b/.machine_readable/6a2/NEUROSYM.a2ml index 5f7b615b..df6dcd93 100644 --- a/.machine_readable/6a2/NEUROSYM.a2ml +++ b/.machine_readable/6a2/NEUROSYM.a2ml @@ -4,6 +4,8 @@ # NEUROSYM.a2ml — Neurosymbolic integration metadata # Configuration for Hypatia scanning and symbolic reasoning. +project = "odds-and-sods-package-manager" + [metadata] version = "0.1.0" last-updated = "2026-03-16" diff --git a/.machine_readable/6a2/PLAYBOOK.a2ml b/.machine_readable/6a2/PLAYBOOK.a2ml index 02c3acbb..b6ad973c 100644 --- a/.machine_readable/6a2/PLAYBOOK.a2ml +++ b/.machine_readable/6a2/PLAYBOOK.a2ml @@ -4,6 +4,8 @@ # PLAYBOOK.a2ml — Operational playbook # Runbooks, incident response, deployment procedures. +project = "odds-and-sods-package-manager" + [metadata] version = "0.1.0" last-updated = "2026-03-16" diff --git a/.machine_readable/CLADE.a2ml b/.machine_readable/CLADE.a2ml index 922f2c85..b4c7ef4d 100644 --- a/.machine_readable/CLADE.a2ml +++ b/.machine_readable/CLADE.a2ml @@ -2,6 +2,8 @@ # Clade declaration — part of the gv-clade-index registry # See: https://github.com/hyperpolymath/gv-clade-index +project = "odds-and-sods-package-manager" + [identity] uuid = "8d0e4d70-0d5d-58c4-a0eb-ff46b91b7de2" primary-forge = "github" diff --git a/.machine_readable/SECURITY-STANDARDS.a2ml b/.machine_readable/SECURITY-STANDARDS.a2ml index 323432ef..85ce1971 100644 --- a/.machine_readable/SECURITY-STANDARDS.a2ml +++ b/.machine_readable/SECURITY-STANDARDS.a2ml @@ -3,6 +3,8 @@ # # SECURITY-STANDARDS.a2ml — Migrated from SECURITY-STANDARDS.scm +project = "odds-and-sods-package-manager" + [metadata] version = "0.1.0" last-updated = "2026-03-16" diff --git a/.machine_readable/agent_instructions/coverage.a2ml b/.machine_readable/agent_instructions/coverage.a2ml index 3d720dc3..d9b47f35 100644 --- a/.machine_readable/agent_instructions/coverage.a2ml +++ b/.machine_readable/agent_instructions/coverage.a2ml @@ -7,6 +7,8 @@ # # Reference: ADR-002 in standards/agentic-a2ml/docs/ +project = "odds-and-sods-package-manager" + [metadata] version = "1.0.0" last-updated = "2026-03-24" diff --git a/.machine_readable/agent_instructions/debt.a2ml b/.machine_readable/agent_instructions/debt.a2ml index f46451a6..12c3150f 100644 --- a/.machine_readable/agent_instructions/debt.a2ml +++ b/.machine_readable/agent_instructions/debt.a2ml @@ -7,6 +7,8 @@ # # Reference: ADR-002 in standards/agentic-a2ml/docs/ +project = "odds-and-sods-package-manager" + [metadata] version = "1.0.0" last-updated = "2026-03-24" diff --git a/.machine_readable/agent_instructions/methodology.a2ml b/.machine_readable/agent_instructions/methodology.a2ml index 9bf14390..7623906e 100644 --- a/.machine_readable/agent_instructions/methodology.a2ml +++ b/.machine_readable/agent_instructions/methodology.a2ml @@ -7,6 +7,8 @@ # # Reference: ADR-002 in standards/agentic-a2ml/docs/ +project = "odds-and-sods-package-manager" + [metadata] version = "1.0.0" last-updated = "2026-03-24" diff --git a/.machine_readable/anchors/ANCHOR.a2ml b/.machine_readable/anchors/ANCHOR.a2ml index 0ac80a58..bb0d69c4 100644 --- a/.machine_readable/anchors/ANCHOR.a2ml +++ b/.machine_readable/anchors/ANCHOR.a2ml @@ -1,6 +1,8 @@ # ⚓ ANCHOR: odds-and-sods-package-manager # This is the canonical authority for the odds-and-sods-package-manager repository. +project = "odds-and-sods-package-manager" + id: "org.hyperpolymath.odds-and-sods-package-manager" version: "1.0.0" clade: "unknown" diff --git a/.machine_readable/contractiles/adjust/Adjustfile.a2ml b/.machine_readable/contractiles/adjust/Adjustfile.a2ml index d1f04de8..7733d009 100644 --- a/.machine_readable/contractiles/adjust/Adjustfile.a2ml +++ b/.machine_readable/contractiles/adjust/Adjustfile.a2ml @@ -41,6 +41,8 @@ ; ; ── End Definitions ────────────────────────────────────────────── +project = "odds-and-sods-package-manager" + (adjust-contractile (version "1.0.0") (full-name "Accessibility & Digital Justice for Universal Software & Technology") diff --git a/.machine_readable/contractiles/dust/Dustfile.a2ml b/.machine_readable/contractiles/dust/Dustfile.a2ml index d7dfc193..9a2dbe79 100644 --- a/.machine_readable/contractiles/dust/Dustfile.a2ml +++ b/.machine_readable/contractiles/dust/Dustfile.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # Dustfile — Cleanup and Hygiene Contract +project = "odds-and-sods-package-manager" + [dustfile] version = "1.0.0" format = "a2ml" diff --git a/.machine_readable/contractiles/intend/Intentfile.a2ml b/.machine_readable/contractiles/intend/Intentfile.a2ml index c8ce48cf..26968a48 100644 --- a/.machine_readable/contractiles/intend/Intentfile.a2ml +++ b/.machine_readable/contractiles/intend/Intentfile.a2ml @@ -29,6 +29,8 @@ ; ; ── End Definitions ────────────────────────────────────────────── +project = "odds-and-sods-package-manager" + (intent-contractile (version "1.0.0") (repo "odds-and-sods-package-manager") diff --git a/.machine_readable/contractiles/must/Mustfile.a2ml b/.machine_readable/contractiles/must/Mustfile.a2ml index 75a07b76..3bb42d7e 100644 --- a/.machine_readable/contractiles/must/Mustfile.a2ml +++ b/.machine_readable/contractiles/must/Mustfile.a2ml @@ -31,6 +31,8 @@ ; ; ── End Definitions ────────────────────────────────────────────── +project = "odds-and-sods-package-manager" + (must-contractile (version "1.0.0") (repo "odds-and-sods-package-manager") diff --git a/.machine_readable/contractiles/trust/Trustfile.a2ml b/.machine_readable/contractiles/trust/Trustfile.a2ml index 6f2c39c6..5f198848 100644 --- a/.machine_readable/contractiles/trust/Trustfile.a2ml +++ b/.machine_readable/contractiles/trust/Trustfile.a2ml @@ -1,6 +1,8 @@ # SPDX-License-Identifier: PMPL-1.0-or-later # Trustfile — Integrity and Provenance Contract +project = "odds-and-sods-package-manager" + [trustfile] version = "1.0.0" format = "a2ml" diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index d58d2b42..dbe4f2fe 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -1,5 +1,7 @@ # ⚠️ STOP - CRITICAL READING REQUIRED +project = "odds-and-sods-package-manager" + **THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** ## WHAT IS THIS? diff --git a/opsm-ui/.machine_readable/6a2/AGENTIC.a2ml b/opsm-ui/.machine_readable/6a2/AGENTIC.a2ml index d119bec0..254483c1 100644 --- a/opsm-ui/.machine_readable/6a2/AGENTIC.a2ml +++ b/opsm-ui/.machine_readable/6a2/AGENTIC.a2ml @@ -2,6 +2,8 @@ # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # AGENTIC.a2ml — AI agent constraints and capabilities +project = "opsm-ui" + [metadata] version = "0.1.0" last-updated = "2026-04-11" diff --git a/opsm-ui/.machine_readable/6a2/META.a2ml b/opsm-ui/.machine_readable/6a2/META.a2ml index 1c2b342c..87598e99 100644 --- a/opsm-ui/.machine_readable/6a2/META.a2ml +++ b/opsm-ui/.machine_readable/6a2/META.a2ml @@ -2,6 +2,8 @@ # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # META.a2ml — Opsm Ui meta-level information +project = "opsm-ui" + [metadata] version = "0.1.0" last-updated = "2026-04-11" diff --git a/opsm-ui/.machine_readable/6a2/NEUROSYM.a2ml b/opsm-ui/.machine_readable/6a2/NEUROSYM.a2ml index 1443ec79..83630d51 100644 --- a/opsm-ui/.machine_readable/6a2/NEUROSYM.a2ml +++ b/opsm-ui/.machine_readable/6a2/NEUROSYM.a2ml @@ -2,6 +2,8 @@ # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # NEUROSYM.a2ml — Neurosymbolic integration metadata +project = "opsm-ui" + [metadata] version = "0.1.0" last-updated = "2026-04-11" diff --git a/opsm-ui/.machine_readable/6a2/PLAYBOOK.a2ml b/opsm-ui/.machine_readable/6a2/PLAYBOOK.a2ml index c894f05d..c1aabf63 100644 --- a/opsm-ui/.machine_readable/6a2/PLAYBOOK.a2ml +++ b/opsm-ui/.machine_readable/6a2/PLAYBOOK.a2ml @@ -2,6 +2,8 @@ # Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # PLAYBOOK.a2ml — Operational playbook +project = "opsm-ui" + [metadata] version = "0.1.0" last-updated = "2026-04-11" diff --git a/opsm-ui/0-AI-MANIFEST.a2ml b/opsm-ui/0-AI-MANIFEST.a2ml index f8342618..e5f74251 100644 --- a/opsm-ui/0-AI-MANIFEST.a2ml +++ b/opsm-ui/0-AI-MANIFEST.a2ml @@ -1,5 +1,7 @@ # ⚠️ STOP - CRITICAL READING REQUIRED +project = "opsm-ui" + **THIS FILE MUST BE READ FIRST BY ALL AI AGENTS** ## WHAT IS THIS? diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 11a4a9af..00000000 --- a/package-lock.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "name": "@hyperpolymath/opsm", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@hyperpolymath/opsm", - "version": "0.1.0", - "devDependencies": { - "@rescript/core": "^1.6.1", - "rescript": "^12.2.0" - } - }, - "node_modules/@rescript/core": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@rescript/core/-/core-1.6.1.tgz", - "integrity": "sha512-vyb5k90ck+65Fgui+5vCja/mUfzKaK3kOPT4Z6aAJdHLH1eljEi1zKhXroCiCtpNLSWp8k4ulh1bdB5WS0hvqA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "rescript": ">=11.1.0" - } - }, - "node_modules/@rescript/darwin-arm64": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/darwin-arm64/-/darwin-arm64-12.2.0.tgz", - "integrity": "sha512-xc3K/J7Ujl1vPiFY2009mRf3kWRlUe/VZyJWprseKxlcEtUQv89ter7r6pY+YFbtYvA/fcaEncL9CVGEdattAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@rescript/darwin-x64": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/darwin-x64/-/darwin-x64-12.2.0.tgz", - "integrity": "sha512-qqcTvnlSeoKkywLjG7cXfYvKZ1e4Gz2kUKcD6SiqDgCqm8TF+spwlFAiM6sloRUOFsc0bpC/0R0B3yr01FCB1A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@rescript/linux-arm64": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/linux-arm64/-/linux-arm64-12.2.0.tgz", - "integrity": "sha512-ODmpG3ji+Nj/8d5yvXkeHlfKkmbw1Q4t1iIjVuNwtmFpz7TiEa7n/sQqoYdE+WzbDX3DoJfmJNbp3Ob7qCUoOg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@rescript/linux-x64": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/linux-x64/-/linux-x64-12.2.0.tgz", - "integrity": "sha512-2W9Y9/g19Y4F/subl8yV3T8QBG2oRaP+HciNRcBjptyEdw9LmCKH8+rhWO6sp3E+nZLwoE2IAkwH0WKV3wqlxQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@rescript/runtime": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/runtime/-/runtime-12.2.0.tgz", - "integrity": "sha512-NwfljDRq1rjFPHUaca1nzFz13xsa9ZGkBkLvMhvVgavJT5+A4rMcLu8XAaVTi/oAhO/tlHf9ZDoOTF1AfyAk9Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rescript/win32-x64": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/@rescript/win32-x64/-/win32-x64-12.2.0.tgz", - "integrity": "sha512-fhf8CBj3p1lkIXPeNko3mVTKQfXXm4BoxJtR1xAXxUn43wDpd8Lox4w8/EPBbbW6C/YFQW6H7rtpY+2AKuNaDA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/rescript": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/rescript/-/rescript-12.2.0.tgz", - "integrity": "sha512-1Jf2cmNhyx5Mj2vwZ4XXPcXvNSjGj9D1jPBUcoqIOqRpLPo1ch2Ta/7eWh23xAHWHK5ow7BCDyYFjvZSjyjLzg==", - "dev": true, - "license": "(LGPL-3.0-or-later AND MIT)", - "workspaces": [ - "packages/playground", - "packages/@rescript/*", - "tests/dependencies/**", - "tests/analysis_tests/**", - "tests/docstring_tests", - "tests/gentype_tests/**", - "tests/tools_tests", - "tests/commonjs_tests", - "scripts/res" - ], - "dependencies": { - "@rescript/runtime": "12.2.0" - }, - "bin": { - "bsc": "cli/bsc.js", - "bstracing": "cli/bstracing.js", - "rescript": "cli/rescript.js", - "rescript-legacy": "cli/rescript-legacy.js", - "rescript-tools": "cli/rescript-tools.js" - }, - "engines": { - "node": ">=20.11.0" - }, - "optionalDependencies": { - "@rescript/darwin-arm64": "12.2.0", - "@rescript/darwin-x64": "12.2.0", - "@rescript/linux-arm64": "12.2.0", - "@rescript/linux-x64": "12.2.0", - "@rescript/win32-x64": "12.2.0" - } - } - } -}