Skip to content

fix(ci): resolve A2ML manifest baseline failure (Refs #87) - #112

Merged
hyperpolymath merged 1 commit into
mainfrom
fix/a2ml-identity-fields
May 20, 2026
Merged

fix(ci): resolve A2ML manifest baseline failure (Refs #87)#112
hyperpolymath merged 1 commit into
mainfrom
fix/a2ml-identity-fields

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Summary

Two .a2ml files outside .machine_readable/ were failing hyperpolymath/a2ml-validate-action with Missing required identity field (agent-id, name, or project):

  • .boj/project-memories.a2ml
  • cartridges/007-mcp/schemas/memory-tag-map.a2ml

Both files use S-expression body shape ((memory-tag-map …) / (project-memories …)) which the validator's line regex ^\s*(name|agent-id|project)\s*= cannot match.

Fix

Added a TOML-shape [identity] preamble to each file exposing name, project, version, and schema_version to the regex. The TOML lines are benign for downstream consumers:

  • cartridges/007-mcp/ffi/oo7_mcp_ffi.zig::matchMemories skips every line until it sees (tag …) (if (!in_memories) continue;), so non-(…) lines never enter the parse path.
  • .boj/project-memories.a2ml is purely informational — cat'd into Claude worker session briefings.

Test plan

  • CI: Dogfood Gate / Validate A2ML manifests green
  • CI: no regression on Empty-linter, Groove manifest check, Validate eclexiaiser manifest

Refs #87.

🤖 Generated with Claude Code

Two `.a2ml` files outside `.machine_readable/` lacked the identity
field required by `hyperpolymath/a2ml-validate-action`:

- `.boj/project-memories.a2ml`
- `cartridges/007-mcp/schemas/memory-tag-map.a2ml`

Both use s-expression body shape `(memory-tag-map …)` /
`(project-memories …)` which the validator's line regex
`^\s*(name|agent-id|project)\s*=` cannot match. Added a TOML-shape
`[identity]` preamble exposing `name`, `project`, `version`,
`schema_version` to the regex. Consumers ignore non-`(…)` lines:

- `cartridges/007-mcp/ffi/oo7_mcp_ffi.zig` `matchMemories` skips
  every line until it sees `(tag …)` (`if (!in_memories) continue;`
  at the parse loop), so the TOML preamble is benign.
- `.boj/project-memories.a2ml` is only `cat`'d into Claude worker
  briefings — informational, not parsed.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 31 issues detected

Severity Count
🔴 Critical 19
🟠 High 5
🟡 Medium 7

⚠️ 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 quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Python file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/boj-server/boj-server/.github/scripts/validate-eclexiaiser.py",
    "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"
  },
  {
    "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/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/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"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

@hyperpolymath
hyperpolymath merged commit 3240209 into main May 20, 2026
17 of 23 checks passed
@hyperpolymath
hyperpolymath deleted the fix/a2ml-identity-fields branch May 20, 2026 08:33
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.

1 participant