Skip to content

[AAASM-5520] ♻️ (docs): Generate canonical contacts from registry - #64

Merged
Chisanan232 merged 4 commits into
mainfrom
v0.0.1/AAASM-5520/generate_contact_consumers
Aug 4, 2026
Merged

[AAASM-5520] ♻️ (docs): Generate canonical contacts from registry#64
Chisanan232 merged 4 commits into
mainfrom
v0.0.1/AAASM-5520/generate_contact_consumers

Conversation

@Chisanan232

@Chisanan232 Chisanan232 commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Jira Ticket

Summary

Consumer rollout of the canonical contact/mail/security-policy registry merged in AAASM-5519. This is the primary PR of the AAASM-5520 set and carries the org-wide repository scan report. It extends the existing generate_org_profile.py (one generator, no second registry) to render bounded contact/SLA regions into SECURITY.md, SUPPORT.md, and CODE_OF_CONDUCT.md, and migrates the profile-README security link off its hand-copied .dev literal.

Pre-adoption preparation only. Post-purchase and production execution acceptance criteria remain blocked.

What is completable now and IS done here: contact generation + drift gates for the in-repo consumers. The only thing not yet true is .com live-sending (no Google Workspace tenant; mail_platform.*_status == planned) — this PR explicitly does not claim it. The rendered legacy-alias note states the .dev address still delivers via Cloudflare Email Routing during the transition.

Changes

  • scripts/generate_org_profile.py: new render_security_contact_block, render_support_contacts_block, render_conduct_contact_block, _format_sla; build_artifacts() now also emits SECURITY.md, SUPPORT.md, CODE_OF_CONDUCT.md. New block ids: security_contact, support_contacts, conduct_contact.
  • SECURITY.md / SUPPORT.md / CODE_OF_CONDUCT.md: <!-- BEGIN/END GENERATED --> regions rendering canonical security@agent-assembly.com / support@agent-assembly.com, structured SLAs (2/5 business days), and the labeled legacy-.dev note. Repo-specific prose (supported versions, disclosure, enforcement) stays hand-authored.
  • profile/README.md: security link no longer embeds a raw address — the repo_table and install_channels generated blocks are byte-identical to main.
  • .github/workflows/org-profile-drift.yml: gate paths extended to the new consumers.
  • scripts/test_contact_schema.py: tests for the new render functions. metadata/README.md: documents the new consumers + intent-only mail note.

Cross-repo distribution contract

This repo is the source registry. Downstream repos pin its registry.json to a recorded commit (see each PR). Fail-closed: the generator validates + --check blocks drift; malformed/leakage-prone input aborts.

Repository-wide scan — classification report

Scanned .github, python-sdk, agent-assembly, horonomy/.github, horonomy/official-website for agent-assembly.dev / horonomy.dev / non-canonical contact literals. Every remaining match is classified below; no unclassified current non-historical contact literal remains.

Location Literal Classification
.github metadata/org-profile.yaml, metadata/generated/registry.json, metadata/README.md *@agent-assembly.dev canonical source / legacy alias — the registry defines the .dev aliases; correct by design
.github scripts/generate_org_profile.py, scripts/test_*.py agent-assembly.dev canonical source / test fixtureLEGACY_APEX constant + schema tests
.github SECURITY.md/SUPPORT.md/CODE_OF_CONDUCT.md generated blocks security@…dev (in legacy note only) explicit legacy compatibility — labeled, .com is the published primary
python-sdk examples/basic_usage.py:12 gateway.agent-assembly.dev out-of-scope URL host (not a contact address; ADR 0007/0008 URL contract) — flagged for a URL-migration ticket
agent-assembly aa-api/**, aa-gateway/** apiVersion: agent-assembly.dev/v1alpha1 canonical source (not a contact/URL) — Kubernetes-style policy API-group identifier
agent-assembly infra/install-endpoint/**, infra/RUNBOOK-domains.md, infra/redirects/** tool.agent-assembly.dev live legacy installer host, intentionally kept — infrastructure, out of contact scope. NOTE: .github registry comment says the alternate installer host was retired in AAASM-4931, but this infra still serves it — a registry-vs-infra discrepancy to reconcile (URL contract, not this ticket)
agent-assembly docs/src/adr/0014-*.md:251-252 team@…dev, security@…dev historical artifact — the pre-migration audit that motivated this work; not rewritten
agent-assembly design/*/scrub.jsx support@external-vendor.io test/design fixture, third-party — not an AA contact
agent-assembly CODE_OF_CONDUCT.md (held PR #1053) security@agent-assembly.dev held-PR coordination item — see below; not touched
horonomy/** *@horonomy.dev, horonomy.dev canonical company source — horonomy.dev is the mother company's own live domain (no .com migration applies)
horonomy/.github CODE_OF_CONDUCT.md:7 conduct@horonomy.dev legitimate published company contact not yet in the registry — candidate for future registry addition; not a defect

Defects found and FIXED here: .github/CODE_OF_CONDUCT.md routed conduct reports to the legacy security@agent-assembly.dev — migrated to the canonical .com primary via a new generated block + drift gate.

Held-PR coordination (#1053)

ai-agent-assembly/agent-assembly PR #1053 (do-not-merge, AAASM-427) introduces CODE_OF_CONDUCT.md with security@agent-assembly.dev as the enforcement contact. It was not touched. When #1053 is eventually merged, its CoC address must be re-pointed to the canonical security@agent-assembly.com (ideally via the same generated-block pattern) so it does not reintroduce drift. It also targets base master, which is stale vs the main default — a separate concern for that PR's owner.

Related AAASM-5520 PRs (cross-linked)

  • ai-agent-assembly/.github — this PR
  • ai-agent-assembly/python-sdk — pyproject author email + SECURITY.md
  • ai-agent-assembly/agent-assembly — SECURITY.md + README
  • horonomy/.github — company registry + generator + consumers
  • horonomy/official-website — generated TS company-metadata module

Validation

  • python3 scripts/generate_org_profile.py --check → exit 0 (idempotent; repo_table/install_channels byte-identical to main)
  • python3 -m unittest discover -s scripts → 21 passed
  • No .com live-sending claim; no second registry; no secrets/private-repo names emitted; legacy aliases + historical artifacts preserved

Review focus

  • Wording of the legacy-alias note (must not imply .com is live).
  • That repo_table/install_channels blocks are unchanged.
  • CoC migration acceptability (routes conduct → security mailbox, canonical .com).

🤖 Generated with Claude Code

claude added 4 commits August 4, 2026 15:16
Extend the org-profile generator to render bounded contact/security-response
regions for SECURITY.md and SUPPORT.md from the merged AAASM-5519 registry, so
the .com contact addresses and structured SLAs have one owner and are drift-
gated. Publishes intent only: the rendered legacy-alias note states the .dev
address still delivers via Cloudflare Email Routing and never claims the .com
mailbox is live-sending.

Refs AAASM-5520

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add BEGIN/END GENERATED regions to SECURITY.md and SUPPORT.md carrying the
canonical .com reporting/support addresses and structured SLAs; migrate the
profile README security link off the hand-copied .dev literal to point at
SECURITY.md. Generated blocks match the generator byte-for-byte (idempotent).

Refs AAASM-5520

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add SECURITY.md and SUPPORT.md to the drift workflow paths so the new generated
contact regions are blocking-validated on every PR/push, and document the new
consumers + the intent-only mail note in metadata/README.md.

Refs AAASM-5520

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…istry

Scan finding: CODE_OF_CONDUCT.md routed conduct reports to the legacy
security@agent-assembly.dev literal. Wrap it in a BEGIN/END GENERATED region
rendering the canonical .com primary, add it to the drift gate, and add a test.
Preserves the existing route to the security mailbox.

Refs AAASM-5520

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@sonarqubecloud

sonarqubecloud Bot commented Aug 4, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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.

2 participants