diff --git a/.shared-templates/docs/coverage-matrix.md b/.shared-templates/docs/coverage-matrix.md index 620e9eec..dae90428 100644 --- a/.shared-templates/docs/coverage-matrix.md +++ b/.shared-templates/docs/coverage-matrix.md @@ -8,26 +8,18 @@ repo's threshold, update both the CI file and this table in the same PR.** | Repo | Threshold | Mechanism | |---|---|---| -| `graycode` | 60% | inline `bc` check in `ci.yml` | -| `eyrie` | 60% | inline `bc` check in `ci.yml` | -| `harrier` | 49% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `shrike` | 38% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `swift` | 58% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `kestrel` | 74% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `merlin` | 76% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `sparrow` | 80% | `THRESHOLD=` in `ci.yml` (go-ci.yml.tmpl) | -| `robin` | 78% | `--cov-fail-under=` in `ci.yml` (python-ci.yml.tmpl) | -| `falcon` | none enforced | leaf library; add one before it grows past a handful of files | -| `starling` | n/a | no Go/Python test suite (skill/content registry) | +| `graycode-cli` | 65% | inline `bc` check in `ci.yml` | +| `graycode-router` | 60% | inline `bc` check in `ci.yml` | +| `graycode-skills` | n/a | no Go/Python test suite (skill/content registry) | ## Why thresholds differ per repo These are *floors*, not targets — set near each repo's actual coverage at the time CI was set up, then only ever raised (never silently lowered) as -the repo's test suite grows. A wide range (38% in `shrike` vs 80% in -`sparrow`) reflects real differences in how much of each repo is -exercised by unit tests vs. requiring live provider credentials -(`test-live` targets) or manual verification — it is not an oversight. +the repo's test suite grows. A range across repos reflects real differences +in how much of each repo is exercised by unit tests vs. requiring live +provider credentials (`test-live` targets) or manual verification — it is +not an oversight. Rows for removed repositories were deleted with them. ## Adding a threshold to a repo that has none diff --git a/.shared-templates/scripts/check-ecosystem-boundaries.sh.tmpl b/.shared-templates/scripts/check-ecosystem-boundaries.sh.tmpl index 732ab550..d8602b10 100644 --- a/.shared-templates/scripts/check-ecosystem-boundaries.sh.tmpl +++ b/.shared-templates/scripts/check-ecosystem-boundaries.sh.tmpl @@ -77,8 +77,7 @@ echo "ecosystem boundary guard passed" # echo "ecosystem boundary guard passed" # ============================================================================= -# VARIANT 3 — SDK / skills consumer (sparrow, robin, -# starling). Consumers may depend on graycode's public surfaces +# VARIANT 3 — SDK / skills consumer (graycode-skills). Consumers may depend on graycode's public surfaces # only — never on a support engine directly, and never on graycode/internal. # ============================================================================= # diff --git a/AGENTS.md b/AGENTS.md index 8e469916..de5ba689 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -105,10 +105,10 @@ graycode specialist path # prints the resolved specialists graycode ships **no bundled skills** by default. Skills are markdown instruction files that extend agent capabilities, sourced from the separate -`GrayCodeAI/starling` repo and installed on demand: +`GrayCodeAI/graycode-skills` repo and installed on demand: ```bash -graycode skills search # find skills in starling +graycode skills search # find skills in graycode-skills graycode skills install [skill-name] # install after user approval graycode skills list # list installed skills graycode skills remove diff --git a/README.md b/README.md index 949b58e7..d2252969 100644 --- a/README.md +++ b/README.md @@ -448,8 +448,8 @@ three runtime layers plus optional tooling/platform services: - **Support engines mounted by Graycode:** **eyrie**, **harrier**, **shrike**, **swift**, **kestrel**, **merlin**. Graycode imports or shells into these engines behind its own command surface. - **Shared foundations:** **falcon** provides shared MCP server scaffolding. -- **API consumers/extensions:** **sparrow**, **robin**, and **wren** consume - Graycode's daemon API; **starling** provides Graycode skills. +- **API consumers/extensions:** **graycode-skills** provides Graycode skills + installed on demand (`graycode skills install`). - **Tooling/platform:** **owl** visualizes the generated ecosystem graph; **graycode-platform** contains the optional web/BFF/Graycode Cloud plane and is outside the Graycode Go runtime graph. diff --git a/cmd/chat_commands_skills.go b/cmd/chat_commands_skills.go index a65f478b..069b8e88 100644 --- a/cmd/chat_commands_skills.go +++ b/cmd/chat_commands_skills.go @@ -223,7 +223,7 @@ func (m *chatModel) handleSkillsCommand(parts []string, text string) (tea.Model, } b.WriteString("\nTo publish:\n") b.WriteString(" 1. Push your skill to a GitHub repo with skills//SKILL.md\n") - b.WriteString(" 2. Submit a PR to github.com/GrayCodeAI/starling to add your repo\n") + b.WriteString(" 2. Submit a PR to github.com/GrayCodeAI/graycode-skills to add your repo\n") b.WriteString(" 3. Or install directly: /skills install /\n") m.messages = append(m.messages, displayMsg{role: "system", content: b.String()}) return m, nil diff --git a/ecosystem.yaml b/ecosystem.yaml index 74e8f3d4..a83f9a2c 100644 --- a/ecosystem.yaml +++ b/ecosystem.yaml @@ -28,42 +28,13 @@ repositories: workspace: true facade: github.com/GrayCodeAI/eyrie/engine - - directory: sparrow - github_repo: sparrow - product_name: Graycode SDK for Go - kind: sdk - language: go - module: github.com/GrayCodeAI/sparrow - workspace: false - - - directory: robin - github_repo: robin - product_name: Graycode SDK for Python - kind: sdk - language: python - workspace: false - - - directory: wren - github_repo: wren - product_name: Graycode SDK for TypeScript - kind: sdk - language: typescript - workspace: false - - - directory: starling - github_repo: starling + - directory: graycode-skills + github_repo: graycode-skills product_name: Graycode Community Skills kind: extension language: python workspace: false - - directory: owl - github_repo: owl - product_name: Ecosystem Architecture Explorer - kind: tooling - language: javascript - workspace: false - - directory: graycode-platform github_repo: graycode-platform product_name: GrayCode Web and Cloud diff --git a/internal/testaudit/package_boundaries_test.go b/internal/testaudit/package_boundaries_test.go index d11f6609..94448a6e 100644 --- a/internal/testaudit/package_boundaries_test.go +++ b/internal/testaudit/package_boundaries_test.go @@ -35,7 +35,6 @@ func TestPackageDependencyGraph(t *testing.T) { checkGraycodeEyrieFacade(t, root) checkGraycodeInternalLayers(t, root) checkSupportRepositoryBoundaries(t, root) - checkGoSDKBoundary(t, root) } func checkGraycodeEyrieFacade(t *testing.T, root string) { @@ -128,23 +127,6 @@ func checkSupportRepositoryBoundaries(t *testing.T, root string) { assertNoPackageViolations(t, "support repository boundaries", violations) } -func checkGoSDKBoundary(t *testing.T, root string) { - var violations []string - for _, sdkRoot := range []string{ - filepath.Join(root, "..", "sparrow"), - } { - for _, imp := range productionImports(t, root, sdkRoot) { - for _, engine := range supportEngines { - prefix := "github.com/GrayCodeAI/" + engine - if imp.path == prefix || strings.HasPrefix(imp.path, prefix+"/") { - violations = append(violations, formatImportViolation(root, imp, "SDKs must consume Graycode public surfaces")) - } - } - } - } - assertNoPackageViolations(t, "Go SDK boundary", violations) -} - func repositoryRoots(root, repo string) []string { return []string{ filepath.Join(root, "..", repo), diff --git a/scripts/check-support-repo-coupling.sh b/scripts/check-support-repo-coupling.sh index 95d539f7..55be27e7 100644 --- a/scripts/check-support-repo-coupling.sh +++ b/scripts/check-support-repo-coupling.sh @@ -40,16 +40,6 @@ for repo in "${support_repos[@]}"; do scan_dir "${repo}" "../${repo}" done -if [[ -d "../sparrow" ]]; then - peer_pattern="$(IFS='|'; echo "${support_repos[*]}")" - sdk_hits="$( - grep -RInE --include='*.go' "github\\.com/GrayCodeAI/(${peer_pattern})(/|\")" ../sparrow || true - )" - if [[ -n "${sdk_hits}" ]]; then - violations+="${sdk_hits}"$'\n' - fi -fi - if [[ -n "${violations}" ]]; then echo "forbidden cross-repo peer imports found:" echo "${violations}" diff --git a/scripts/ecosystem-manifest.sh b/scripts/ecosystem-manifest.sh index 648eb9eb..cc0f46c7 100755 --- a/scripts/ecosystem-manifest.sh +++ b/scripts/ecosystem-manifest.sh @@ -137,8 +137,8 @@ validate() { done < <(records) - if ((count != 8)); then - echo "expected 8 repositories, found ${count}" >&2 + if ((count != 4)); then + echo "expected 4 repositories, found ${count}" >&2 failed=1 fi ((failed == 0)) || exit 1