data: re-cut Ornn regions to surface shipped milestones (6 → 11)#3
Merged
Conversation
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>
Merged
2 tasks
5 tasks
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
v0.1.3/closure=public) to 11 milestone-aligned regions — 10bridgedachievement-wall nodes + 1obligation(M4) marked as Q2 focusgh_queryswitched from<word> in:titleto milestone-based queries so weekly audit actually catches driftRegion map
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→ OKpython3 tools/validate_regions.py→ OK: regions.json valid (50 regions)python3 -m unittest tools.test_validate→ 12 tests OKquarto preview— visual sanity check on node layout / detail panelmatureon 2026-05-23 (30 days post-v0.2.0 / v0.3.0 release)🤖 Generated with Claude Code