Skip to content

data: re-cut Ornn regions to surface shipped milestones (6 → 11)#3

Merged
chronoai-shining merged 1 commit into
mainfrom
claude/bold-bell-49df93
May 15, 2026
Merged

data: re-cut Ornn regions to surface shipped milestones (6 → 11)#3
chronoai-shining merged 1 commit into
mainfrom
claude/bold-bell-49df93

Conversation

@chronoai-shining

Copy link
Copy Markdown
Contributor

Summary

  • Ornn re-cut from 6 thin slices (all stuck at v0.1.3 / closure=public) to 11 milestone-aligned regions — 10 bridged achievement-wall nodes + 1 obligation (M4) marked as Q2 focus
  • Marketplace concept dropped per positioning #199 ("agent-facing skill-lifecycle API, not human marketplace"). Ornn M5 milestone closed upstream; #38 + #39 closed as not-planned with rationale
  • gh_query switched from <word> in:title to milestone-based queries so weekly audit actually catches drift

Region map

Region closure milestone issues notes
Ornn-API-V1-Refactor bridged Refactor 0 Epic 0-4 (#64-#72)
Ornn-Skill-Lifecycle-Core bridged M1 0 search / pull / install / execute / build / upload / share
Ornn-Build-Pipeline bridged M2 0 OpenAPI/source → skill + TS/Py SDK
Ornn-GitHub-Sync bridged v0.5.0 0 v0.5.0 marquee (#234)
Ornn-Audit-System bridged M3 1 LLM audit + audit-as-label pivot (#197)
Ornn-AgentSeal-Trust bridged Go-Live-Prep 0 3rd-party scan (#253)
Ornn-Analytics-PostHog bridged Go-Live-Prep 0 PostHog-only (#271)
Ornn-Quota-Admin bridged Go-Live-Prep 0 per-user quota + admin LLM catalog
Ornn-NyxID-Integration bridged Go-Live-Prep 2 OAuth + service-registry; open: #220 #218 #106
Ornn-Web-Frontend bridged Go-Live-Prep 0 Editorial Forge migration
Ornn-Platform-Power obligation M4 3 Q2 focus (red border): #35 #36 #37

Dependency chain: API-V1-Refactor → Skill-Lifecycle-Core → {Build-Pipeline → GitHub-Sync, Audit-System → AgentSeal-Trust, Analytics-PostHog, Platform-Power}

Test plan

  • python3 tools/validate_config.py → OK
  • python3 tools/validate_regions.py → OK: regions.json valid (50 regions)
  • python3 -m unittest tools.test_validate → 12 tests OK
  • quarto preview — visual sanity check on node layout / detail panel
  • Confirm M1 / M2 / Refactor regions are eligible for mature on 2026-05-23 (30 days post-v0.2.0 / v0.3.0 release)

🤖 Generated with Claude Code

Before: 6 thin slices (Discovery / Sandbox / MCP / NyxID-Auth /
Website / Skill-Registry-API) all stuck at milestone v0.1.3 with
closure=public, hiding everything Ornn has shipped post-M1.

After: 11 milestone-aligned regions — 10 bridged "achievement wall"
nodes + 1 obligation node (M4) marked as Q2 focus. Each region maps
1:1 to a real GitHub milestone or v0.5.0 marquee feature, with full
promoted_at timelines and milestone-based gh_query for audit.

- Removed marketplace concept per positioning #199 (agent-API, not
  human marketplace). M5 milestone closed upstream, #38 + #39 closed
  as not-planned.
- API-V1-Refactor + Skill-Lifecycle-Core + Build-Pipeline are 30-day
  candidates for mature on 2026-05-23.
- Platform-Power (M4) gets focus=true as current Q2 attack target.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@chronoai-shining chronoai-shining merged commit 585287b into main May 15, 2026
2 checks passed
chronoai-shining added a commit that referenced this pull request May 18, 2026
…1:1 GitHub milestones) (#6)

* data: Ornn roadmap — add 4 missing regions (QA / Community / Code-Review / Launch)

Surface the launch-gate and post-launch buckets that were missing from the
Ornn track. Net change: 4 new regions, 1 dep update.

- Ornn-QA-PreLaunch (obligation, focus) — #534 umbrella + 12 module trackers
  (#535-#546). SOP-style "上线准出 checklist". Parallel to Code-Review-Hardening,
  not part of it (functional UI tests vs code-level audit findings).

- Ornn-Code-Review-Hardening (obligation, focus) — 36 findings from the W19
  automated code review, split across 5 sub-milestones (Security #438-#442,
  Vulnerability #443-#447, Coding Standards #448-#454, Industry Standards
  #456-#465, OSS Readiness #466-#474). Launch gate, parallel to QA.

- Ornn-Launch-Marketing (seed, focus) — 10-channel pre-launch playbook in
  the private ChronoAIProject/Ornn-Marketing repo (created 2026-05-15).
  Currently pre-launch with 0 posts; blocked on account warmup + ≥50 stars
  + QA/Code-Review green.

- Ornn-Community-Engagement (seed) — post-launch social layer: ratings,
  reviews, likes, per-skill discussion. Replaces the abandoned M5 marketplace
  direction (billing/revenue-share). Concept seed in #3; GitHub Discussions
  already enabled at repo level (#377). Depends on Launch-Marketing so the
  graph correctly shows it as a post-launch direction.

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

* data: Ornn roadmap — full milestone refactor + auto-sync workflow

Complete restructuring driven by user instruction: delete all 13 existing
Ornn milestones, re-bucket every issue (open + closed) into a fresh
9-milestone Ornn taxonomy, create 3 marketing milestones + 25 issues in
ornn-marketing, refactor regions.json to 1 region per milestone, and add
an auto-sync workflow that keeps each region's desc populated with its
milestone's live GitHub issues.

## GitHub state changes (already applied, not undoable from this PR)

ChronoAIProject/Ornn:
- Deleted 13 milestones (Refactor / M1-M5 / Go Live Prep / i18n Coverage /
  Review · {Security, Vulnerability, Coding Standards, Industry Standards,
  OSS Readiness}). Snapshot saved at _archive/ornn_milestone_snapshot_2026-05-18.json.
- Created 9 new milestones with descriptions + objectives:
  - M0 Engineering Foundation & Infra (closed, 33 issues)
  - M1 Skill Lifecycle Core (closed, 36 issues)
  - M2 Build Experience (closed, 10 issues)
  - M3 Trust & Quality (open, 36 issues, 3 still open)
  - M4 Go Live Prep (closed, 112 issues, 6 still open)
  - M5 QA Pre-Launch Gate (open, 13 issues)
  - M6 Code Review Hardening (open, 38 issues)
  - M7 Platform Power (open, 3 issues)
  - M8 Community Engagement (open, 2 historical)
- Re-bucketed all 283 issues. Categorization rationale persisted at
  _archive/categorization.json.

ChronoAIProject/Ornn-Marketing:
- Created 3 milestones (L0 Pre-flight & Warmup / L1 D-Day Launch / L2
  Post-Launch Followup) with objectives.
- Created 25 issues per marketing.md sections §0.5–§10 (account audits,
  warmup, prep, copy drafts, launch executions, post-launch followups).

## regions.json refactor

Replaced 15 Ornn product regions with 12 milestone-mirror regions:
- Ornn-M0-Engineering-Foundation through Ornn-M8-Community-Engagement
- Ornn-Marketing-L0/L1/L2

Each carries a new `milestone_ref` field linking it to a real GitHub
milestone, plus an AUTO_GH_ISSUES marker block in both desc.en and
desc.zh that the sync script fills in.

NyxID-Skill-Install-CLI's dep updated:
  Ornn-Skill-Lifecycle-Core → Ornn-M1-Skill-Lifecycle-Core

## Auto-sync mechanism

tools/sync_milestone_issues.py — pulls every region's milestone_ref,
fetches open+closed issues from that milestone, replaces the
AUTO_GH_ISSUES block in desc.{en,zh}. Updates issue_count to match.

.github/workflows/sync-milestone-issues.yml — runs hourly + on
workflow_dispatch + on repository_dispatch event-type milestone-issues-sync.
Cross-repo / private-repo access via CROSS_REPO_PAT secret (fallback
to default GITHUB_TOKEN for public repos only).

tools/upstream-trigger-sample.yml — sample workflow to drop into Ornn /
Ornn-Marketing repos. Fires repository_dispatch on every issue/milestone
event so region-map updates near-real-time instead of waiting for hourly
cron. Requires REGION_MAP_DISPATCH_PAT secret in the upstream repo.

## Validation

- python3 tools/validate_regions.py → OK: regions.json valid (57 regions)
- python3 -m unittest discover tools/ → 12 tests OK
- python3 tools/sync_milestone_issues.py → 12 regions synced, all match

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

* data: drop event-driven sync path — hourly cron + manual is enough

Owner doesn't need near-real-time updates; hourly latency is fine.

- Remove tools/upstream-trigger-sample.yml (the sample workflow that
  would have lived in upstream Ornn / Ornn-Marketing repos)
- Remove repository_dispatch trigger from sync-milestone-issues.yml
  (it would have received those upstream events)

Sync now runs on: hourly cron (:05) + workflow_dispatch only.

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

* viz: per-issue compound nodes for Ornn — every issue visible in the map

Each Ornn milestone region becomes a cytoscape compound parent containing
its OPEN issues as child nodes. Issue→issue dependencies extracted from
issue body (Depends/Blocks/Tracks/checklist items) become edges within /
across the milestone bubbles. Only regions with milestone_ref (Ornn) get
this treatment — other products' regions render unchanged.

## Sync script (tools/sync_milestone_issues.py)

Extract dependencies from issue body via regex:
  - "Depends on #N"   / "Depends-on: #N"   → blocked_by[N]
  - "Blocks #N"       / "Blocks: #N"       → blocks[N]
  - "Tracks #N"       / "Tracks: #N"       → tracks[N]
  - "Tracked by #N"   / "Tracked-by: #N"   → tracked_by[N]
  - Checklist items "- [ ] #N" / "- [x] #N" → tracks[N]

Write a new artifact ornn-issues.json (alongside regions.json) with the
per-region structured issue map + extracted deps. 308 issues across
12 regions; 20 carry at least one extracted dep, 35 tracks edges
(mostly umbrella → checklist children like #534 → #535–#546), 18
blocked_by, 3 blocks.

regions.json AUTO_GH_ISSUES side-panel rendering is unchanged.

## Viz (visualization.qmd)

- New script tag: cytoscape-expand-collapse@4.1.1
- loadData() also fetches ornn-issues.json (tolerates absence)
- buildCytoscapeElements():
  - Each region still emits its node + milestone-level dep edges
  - If the region has issues, every OPEN issue emits a child node with
    parent: <region_id> (makes the region a compound parent in cytoscape)
  - Issue→issue edges added for deps where both endpoints are OPEN
- Style additions:
  - node[?is_issue]: small blue ellipse, label "#N"
  - node:parent: dashed outline + low-opacity tinted fill when expanded
  - edge[edge_type='blocks']: red solid arrow
  - edge[edge_type='tracks']: dashed grey tee arrow
- renderCy() inits expand-collapse, immediately collapses every compound
  so the default view matches the old milestone-only layout
- Click handler: issue nodes route to showIssueDetail (new), region
  nodes still route to showNodeDetail
- showIssueDetail(): renders issue title + state badge + labels + deps +
  "Open on GitHub" link. Dep numbers are clickable → jumpToIssue() which
  expands the parent (if needed) and centers on the target issue
- highlightSubgraph(): updated isKept() helper so issue children of a
  highlighted region don't fade

## Workflow

sync-milestone-issues.yml also stages ornn-issues.json on commit.

## What I couldn't test locally

quarto isn't installed in this sandbox. JS structure validates
(stack-based brace check is balanced). publish.yml will auto-deploy
on push, so the live preview can be eyeballed at
chronoaiproject.github.io/region-map/visualization.html within ~1 min.

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

* viz: fix compound rendering — flat elements + collapse-before-dagre + grid layout + clean detail panel

Smoke-tested locally with quarto preview. Four bugs found + fixed:

1. **cytoscape({elements: {nodes,edges}}) silently dropped compound children.**
   Cytoscape's object-form elements drops nodes whose `parent` references
   another node in the same call. Switched to flat array form
   `[...nodes, ...edges]` — all 153 elements (57 region + 96 issue children)
   now register, 10 compounds correctly identified.

2. **Detail panel rendered AUTO_GH_ISSUES markdown as escaped raw text.**
   showNodeDetail used escapeHtml on the full desc, so the marker block
   `<!-- AUTO_GH_ISSUES:START --> … <!-- AUTO_GH_ISSUES:END -->` along
   with raw markdown links rendered as plain visible text. Fix: strip the
   marker block from rendered desc and synthesize a proper HTML issues
   section directly from ORNN_ISSUES — collapsible <details> for Open
   (default open) and Closed (default closed), clickable issue links via
   jumpToIssue().

3. **dagre laid issue children in a single vertical column.**
   With all 153 elements visible at layout time, dagre treated each issue
   as a rank, producing a 3500px-tall stack per compound. Fix: change
   initial layout to `preset` (no layout), collapse all compounds first,
   THEN run dagre — it now only sees the 57 outer nodes and produces a
   clean LR layout.

4. **Expanding a compound piled children at a single point.**
   With layoutBy: null in expand-collapse, expanded children inherited the
   parent's position. Added __layoutCompoundChildren helper that arranges
   children in a grid centered on the parent's spot after each expand.
   M5 (13 issues) renders as a 5×3 grid bubble; M6 (38 issues) as ~8×5.

Also:
- Click handler: tapping a compound region now toggles expand/collapse
  AND shows detail panel (the +/- hover cue was easy to miss).
- highlightSubgraph treats issue children as kept iff their parent is kept.
- Added .gitignore entries for local single-file render artifacts.

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

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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