Skip to content

feat(deno): ssg-collection workspace finalisation — root deno.json + 0 package.json (STEP 7 closeout) - #26

Merged
hyperpolymath merged 1 commit into
mainfrom
campaign-253/workspace-finalisation-ssg-collection
May 31, 2026
Merged

feat(deno): ssg-collection workspace finalisation — root deno.json + 0 package.json (STEP 7 closeout)#26
hyperpolymath merged 1 commit into
mainfrom
campaign-253/workspace-finalisation-ssg-collection

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Completes the STEP 7 workspace finalisation acceptance criteria for ssg-collection from hyperpolymath/standards#275. After the prior #25 (which migrated 8 unpaired SSG adapter manifests Class B), this PR ships the remaining workspace-root deliverable and cleans up the residual 6 paired package.json files that #25 explicitly carved out as "per-repo follow-up".

After this PR merges, ssg-collection has zero package.json files — workspace finalisation complete.

Changes

Root deno.json with workspace field (STEP 7 acceptance criterion 1)

Adds deno.json at repo root with flat workspace member list of all 32 sub-projects. Top-level tasks delegate via deno task --recursive.

Member type Count Example
implementations/ 6 ./implementations/eclipse
ssg-fixes/ 8 ./ssg-fixes/baremetal-ssg
stubs/*/adapters/ 5 ./stubs/milk/adapters
variants/ 10 ./variants/baremetal, ./variants/wagasm/adapters
nested adapter leaves 3 ./implementations/hackenbush/adapters

2 hackenbush adapter migrations (Class B canonical)

implementations/hackenbush/ and ssg-fixes/hackenbush-ssg/ had deno.json at the parent SSG-engine level only; their adapters/ leaf still had package.json (devDep rescript@^12.0.0 + bare rescript scripts) without a paired deno.json. #25 explicitly excluded these as "deno.json at parent" cases; this PR closes that gap by adding canonical Class B deno.json at each adapter leaf matching the milk/parallax/prodigy/terrapin pattern (deno run -A --node-modules-dir=auto npm:rescript@^12.0.0).

4 redundant paired package.json removals

implementations/eclipse, implementations/odd, ssg-fixes/eclipse-ssg, stubs/rescribe/adapters each had package.json (devDep rescript@^12.0.0 only, npm scripts) alongside a paired deno.json that supersedes the build. #25 carved these out citing "could interact with existing CI/build flows that import main" — verified via internal grep -r that no internal repo reference imports any of these by name. Safe to remove.

Test plan

  • CI green (no package-lock.json in repo → :nodejs_detected quiet)
  • deno task build-all traverses workspace members
  • Hypatia scan reports zero :nodejs_detected (zero package.json in repo)

Closes hyperpolymath/standards#275 (ssg-collection portion — workspace finalisation acceptance criterion 1).
Refs hyperpolymath/standards#253 (umbrella npm → Deno campaign).
Refs #25 (predecessor — 8-adapter Class B migration).

🤖 Generated with Claude Code

…apters + 4 redundant package.json removals (STEP 7 closeout)

Completes the STEP 7 workspace finalisation acceptance criteria for
ssg-collection from hyperpolymath/standards#275:

1. **Root `deno.json` with `workspace` field** — flat workspace member
   list of all 32 sub-projects with their own deno.json (post the prior
   commit's 8 adapter migrations + this commit's 2 hackenbush adapter
   additions). Top-level tasks delegate to per-member tasks via
   `deno task --recursive`. This was the missing acceptance gate
   (criterion 1 of issue #275 body).

2. **2 hackenbush adapter migrations** — `implementations/hackenbush/`
   and `ssg-fixes/hackenbush-ssg/` adapters had deno.json at PARENT level
   only; their adapter leaf only had package.json. Now each adapter dir
   gets its own canonical Class B deno.json matching the prior commit's
   8-adapter pattern. The parent deno.json was the SSG engine itself —
   adapters are a separate sub-package surface.

3. **4 redundant paired package.json removals** —
   `implementations/eclipse/package.json` (paired deno.json supersedes),
   `implementations/odd/package.json` (idem),
   `ssg-fixes/eclipse-ssg/package.json` (idem),
   `stubs/rescribe/adapters/package.json` (idem). Each had only the
   `rescript@^12.0.0` devDep + `rescript`-script entries; their paired
   deno.json takes over the build. The "out of scope" caveat from the
   prior commit body is now retired — verified no internal repo
   reference imports these by name.

After this commit, ssg-collection has zero `package.json` files —
workspace finalisation complete.

Refs hyperpolymath/standards#275 (this completes the STEP 7 ssg-collection scope)
Refs hyperpolymath/standards#253 (umbrella npm → Deno migration)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@hyperpolymath
hyperpolymath enabled auto-merge (squash) May 31, 2026 07:15
@sonarqubecloud

Copy link
Copy Markdown

@hyperpolymath
hyperpolymath merged commit e14fe44 into main May 31, 2026
6 of 15 checks passed
@hyperpolymath
hyperpolymath deleted the campaign-253/workspace-finalisation-ssg-collection branch May 31, 2026 07:30
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 245 issues detected

Severity Count
🔴 Critical 9
🟠 High 142
🟡 Medium 94

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in codeql.yml",
    "type": "missing_workflow",
    "file": "codeql.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in scorecard.yml",
    "type": "missing_workflow",
    "file": "scorecard.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Action perpolymath/standards/.github/workflows/governance-reusable.yml@main\n needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in boj-build.yml",
    "type": "missing_timeout_minutes",
    "file": "boj-build.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in casket-pages.yml",
    "type": "missing_timeout_minutes",
    "file": "casket-pages.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in governance.yml",
    "type": "missing_timeout_minutes",
    "file": "governance.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in hypatia-scan.yml",
    "type": "missing_timeout_minutes",
    "file": "hypatia-scan.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in instant-sync.yml",
    "type": "missing_timeout_minutes",
    "file": "instant-sync.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Issue in mirror.yml",
    "type": "missing_timeout_minutes",
    "file": "mirror.yml",
    "action": "flag",
    "rule_module": "workflow_audit",
    "severity": "medium"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

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.

[campaign #253] STEP 7 — WORKSPACE FINALISATION: multi-manifest workspace repos

1 participant