一键导入
landscape-sync
Full sync all landscape projects from GitHub — batch update metadata, detect status changes, and keep the entire catalog fresh.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Full sync all landscape projects from GitHub — batch update metadata, detect status changes, and keep the entire catalog fresh.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Add a new project to the AI Native Landscape from a GitHub URL or GitHub issue requesting inclusion.
Archive or deprecate a project in the AI Native Landscape. Set status to archived or inactive, record reason and date.
Bulk import multiple projects to the AI Native Landscape from a JSON file, CSV file, or list of GitHub URLs.
Batch health check all tracked projects — detect inactive repos, stale data, archived GitHub repos, and auto-suggest status changes.
Generate statistics and analytics reports for the AI Native Landscape — category counts, license distribution, activity trends, and growth metrics.
Search the AI Native Landscape for open-source AI projects by natural language description. Find tools, frameworks, agents, runtimes, and infrastructure for AI native systems.
| name | landscape-sync |
| description | Full sync all landscape projects from GitHub — batch update metadata, detect status changes, and keep the entire catalog fresh. |
Synchronize ALL projects in the landscape with their latest GitHub data. This is the heavy-duty version of landscape-update — processes every project in batch.
Not for: Single project updates (use landscape-update), adding new projects (use landscape-add), or health checks (use landscape-health).
# Count all projects
ls data/projects/*.en.md | wc -l
# List all tracked projects with their repo URLs
grep -h "^repo:" data/projects/*.en.md | sort | uniq
Report: "Found X projects to sync."
Strategy: Process in batches of 20 to respect rate limits.
For each project:
owner/repo from the repo fieldgh repo view <owner>/<repo> --json name,description,homepageUrl,licenseInfo,stargazerCount,repositoryTopics,owner,updatedAt,isArchived,latestRelease
Parallel fetch with rate limit awareness:
Track per-project status:
For each project, compare GitHub data with current frontmatter:
# Fields to check
- name
- description
- license
- homepage
- tags (GitHub topics)
- author (owner)
Diff categories:
Show summary before applying:
🔄 Sync Plan
═════════════
Total projects: XXX
No change: XXX
Minor updates: XX
Major changes: X (review needed)
GitHub archived: X (suggest archive)
Failed/Not found: X (investigate)
Minor updates:
- <slug1>: description changed, +2 tags
- <slug2>: license MIT → Apache-2.0
...
Major changes (review):
- <slug3>: name "Old" → "New"
...
Archived on GitHub:
- <slug4>: archived on YYYY-MM-DD
...
Failed:
- <slug5>: repo not found
...
Ask user: "Apply minor updates automatically? Review major changes? [all/review-all/minor-only]"
For minor updates (auto-approved):
.en.md and .zh.mddescription changes: update English, translate to ChineseFor major changes (per-project confirmation):
For archived repos (auto-flag):
status: archived + archiveReason: repo-archivedFor failed repos (report only):
Projects where status should change:
# If GitHub isArchived and current status is "tracked"
status: archived
archiveDate: '<YYYY-MM-DD>'
archiveReason: 'repo-archived'
featured: false
Apply to both language files.
npm run validate
npm run build
📋 Full Sync Report — YYYY-MM-DD
═════════════════════════════════
Processed: XXX projects
Updated: XX
Archived: X
Failed: X
Unchanged: XXX
Fields updated:
description: XX changes
tags: XX changes
license: X changes
homepage: X changes
name: X changes
Archived projects:
- <slug> (reason)
...
Failed projects:
- <slug> (error)
...
Build: ✅ PASSED
Save report to reports/sync-YYYY-MM-DD.md.
Based on sync results, suggest:
landscape-health for detailed activity analysislandscape-report for updated statisticsFor faster subsequent syncs:
landscape-sync --incremental — only process stale entries| Projects | Time | API calls |
|---|---|---|
| 100 | ~30s | 100 |
| 300 | ~90s | 300 |
| 600 | ~3min | 600 |
| Error | Fix |
|---|---|
| GitHub rate limit | Pause batch, resume after reset |
| Network timeout | Retry 3x with backoff, skip on failure |
| Repo deleted/404 | Flag for archival |
| Auth expired | Prompt gh auth login, resume |
| Partial completion | Save progress, support --resume |