Skip to content

boj-server.net website: install configurator + cartridge catalogue#233

Merged
hyperpolymath merged 2 commits into
mainfrom
claude/awesome-davinci-8afqgy
Jun 24, 2026
Merged

boj-server.net website: install configurator + cartridge catalogue#233
hyperpolymath merged 2 commits into
mainfrom
claude/awesome-davinci-8afqgy

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

What this is

A permanent presence + access point for boj-server.net — a no-build static Cloudflare Pages bundle in site/. It's not a placeholder: it's an interactive hub.

The hub (site/index.html)

  • Install configurator — base boj-server + toggleable NeSy / Agentic / Coordination bundles, with the correct install command per client (Claude Code, Claude Desktop, Deno, Gemini, Cursor). Output is honest about the runtime model: one base install, cartridges fetched on demand from the registry.
  • Cartridge catalogue — all 139 cartridges generated from the canonical registry, with search, group filter (by directory taxonomy = "related"), tier filter, individual + Add picking that feeds the configurator selection, and a link to each manifest.
  • Vanilla CSS/JS, zero dependencies, strict first-party CSP (site/_headers), accessible (skip link, landmarks, keyboard-operable, prefers-reduced-motion).

Supporting files

  • site/catalog.json — committed snapshot (139); tools/site-catalog/build-catalog.sh regenerates it (verified to reproduce the snapshot).
  • wrangler.toml (pages_build_output_dir = "site"), cloudflare-dns-zone.txt (reference), scripts/cloudflare/*.affine (parity with standards/avow-protocol).
  • docs/website/CLOUDFLARE-SETUP.adoc — go-live runbook.

Go-live (one manual step — chosen: Dashboard Git-connect)

Connect hyperpolymath/boj-server in Workers & Pages → Pages → Connect to Git, branch main, no build command, output dir site, then attach the custom domain boj-server.net (the zone is already on Cloudflare, so DNS auto-creates). Full steps in the runbook.

Answers to the open questions

  • "What do you need to see/act on DNS?" The connected Cloudflare Developer Platform MCP has no DNS/zones or Pages tools (only Workers-read + KV/D1/R2), so a broader token won't help that server. For go-live path A you don't need to grant anything — the dashboard custom-domain step auto-creates DNS. If you want me to drive DNS/Pages directly, provide a scoped Cloudflare API token (Pages:Edit, Zone:DNS:Edit on boj-server.net, Zone:Read) + account/zone IDs as env vars; I'd use the REST API / wrangler (the .affine scripts' path). Documented in the runbook §"agent access".
  • "Does the hub necessitate multi-page?" No. A single page handles install-config + catalogue (related grouping + individual pick) client-side. Per-cartridge pages / hash-routing are an optional later enhancement for deep-linking & SEO.

Licensing (your directive: MPL-2.0 code, CC-BY-SA-4.0 docs, no other reference)

Done here: root LICENSE is already MPL-2.0; LICENSES/ now holds MPL-2.0 + CC-BY-SA-4.0 (byte-exact from SPDX) with a rewritten README; new code = MPL-2.0, new docs = CC-BY-SA-4.0.

Flagged for your explicit go-ahead (not swept — per the estate's manual-only licensing guardrail):

  1. Relicensing existing docs MPL-2.0 → CC-BY-SA-4.0 would be a bulk SPDX sweep across many files. Needs your deliberate sign-off before I touch existing headers.
  2. Residual PMPL artifacts: LICENSES/PMPL-1.0-or-later.txt + 2 exhibits, NOTICE (a deliberate "voluntarily adopts PMPL" statement), docs/index.html (the only PMPL SPDX header), coord-tui/LICENSE-PMPL-1.0-or-later.txt. Removing the PMPL text while PMPL-headed files remain would break REUSE, so this should be done as one owner-directed step. cartridges/pmpl-mcp/ is a product about the licence — out of scope.

Tell me to proceed on (1) and/or (2) and I'll do it surgically.


🤖 Generated with Claude Code


Generated by Claude Code

Static, no-build Cloudflare Pages bundle in site/ serving as the project's
permanent presence and access point:

- Hub page (site/index.html) with a live install configurator (base boj-server
  + NeSy / Agentic / Coordination bundles, per-client commands) and a browsable
  catalogue of all 139 cartridges generated from the canonical registry.
- Vanilla CSS/JS, zero dependencies; strict first-party CSP in site/_headers.
- catalog.json snapshot + tools/site-catalog/build-catalog.sh regenerator.
- Estate-standard deploy config: wrangler.toml (output dir site/),
  cloudflare-dns-zone.txt reference, scripts/cloudflare/*.affine (avow parity).
- docs/website/CLOUDFLARE-SETUP.adoc runbook (dashboard Git-connect go-live,
  API-token scopes for agent-driven DNS/Pages).

Licensing: establish the two-licence scheme — LICENSES/ now holds MPL-2.0 +
CC-BY-SA-4.0 with a README; new code is MPL-2.0, new docs CC-BY-SA-4.0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XrPAh7eBSUcVKauTVdXH9Y
Comment thread site/assets/app.js Fixed
Comment thread site/assets/app.js Fixed
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 217 issues detected

Severity Count
🔴 Critical 15
🟠 High 132
🟡 Medium 70

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stale AI session file -- delete",
    "type": "stale",
    "file": "GEMINI.md",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "medium"
  },
  {
    "reason": "Issue in scorecard-enforcer.yml",
    "type": "missing_timeout_minutes",
    "file": "scorecard-enforcer.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in scorecard-enforcer.yml",
    "type": "scorecard_publish_with_run_step",
    "file": "scorecard-enforcer.yml",
    "action": "split_scorecard_publish_job",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "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 codeql.yml",
    "type": "codeql_missing_actions_language",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/academic-workflow-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/ephapax-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/bofig-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/fireflag-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/sanctify-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

- js_innerhtml (CWE-79): replace `list.innerHTML = ""` with `list.replaceChildren()`
  (the list was only being cleared; no markup was ever assigned).
- js_deno_all_perms (CWE-250): the displayed Deno install command now uses the
  bridge's declared least-privilege flags (`--allow-net --allow-env --allow-read`,
  per mcp-bridge/main.js + mcp-bridge/deno.json) instead of `-A`.

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

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 215 issues detected

Severity Count
🔴 Critical 15
🟠 High 130
🟡 Medium 70

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Stale AI session file -- delete",
    "type": "stale",
    "file": "GEMINI.md",
    "action": "delete",
    "rule_module": "root_hygiene",
    "severity": "medium"
  },
  {
    "reason": "Issue in scorecard-enforcer.yml",
    "type": "missing_timeout_minutes",
    "file": "scorecard-enforcer.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in scorecard-enforcer.yml",
    "type": "scorecard_publish_with_run_step",
    "file": "scorecard-enforcer.yml",
    "action": "split_scorecard_publish_job",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "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 codeql.yml",
    "type": "codeql_missing_actions_language",
    "file": "codeql.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/academic-workflow-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/ephapax-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/bofig-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/fireflag-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/cartridges/sanctify-mcp/adapter/mod.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath hyperpolymath marked this pull request as ready for review June 24, 2026 07:39
@hyperpolymath hyperpolymath enabled auto-merge (squash) June 24, 2026 07:39
@hyperpolymath hyperpolymath disabled auto-merge June 24, 2026 07:44
@hyperpolymath hyperpolymath merged commit bec14cc into main Jun 24, 2026
37 checks passed
@hyperpolymath hyperpolymath deleted the claude/awesome-davinci-8afqgy branch June 24, 2026 07:44
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.

3 participants