Plugin Testing
polyipseity/obsidian-terminal
Skill for testing Obsidian plugin features in this repository.
Layer 1 skill for SDK and ecosystem analysis. An agent skill from prime-radiant-inc/greenfield.
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysis --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ecosystem-analysis .claude/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .claude/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysisType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysis --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/ecosystem-analysis .agents/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .agents/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysis --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/ecosystem-analysis .cursor/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .cursor/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/prime-radiant-inc/greenfield.git --path skills/ecosystem-analysis--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysis --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/ecosystem-analysis .gemini/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .gemini/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysisInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/ecosystem-analysis .github/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .github/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install prime-radiant-inc/greenfield ecosystem-analysis --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/prime-radiant-inc/greenfield.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/ecosystem-analysis .opencode/skills/ecosystem-analysis && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ecosystem-analysis" agent skill from https://github.com/prime-radiant-inc/greenfield/tree/main/skills/ecosystem-analysis into .opencode/skills/ecosystem-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ecosystem-analysis", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ecosystem-analysisLayer 1 skill for SDK and ecosystem analysis. An agent skill from prime-radiant-inc/greenfield.
Ecosystem Analysis is an agent skill from prime-radiant-inc/greenfield. Layer 1 skill for SDK and ecosystem analysis. SDK discovery strategy, behavioral extraction methodology, integration test mining, output formats. Loaded by the analyzer agent for SDK and ecosystem work.
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA, covering Integration testing. The repository describes itself as: A Claude Code plugin that reverse-engineers clean behavioral specs, test vectors, and acceptance criteria from any codebase, producing a provenance trail so a fresh team can… The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6e6d4b4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are dot and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
npmjs.comgithub.compypi.orgcrates.iosearch.maven.orgnuget.orgrubygems.orgpkg.go.devhex.pmpackagist.orgFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ecosystem Analysis loads about 2.9k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 982 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from prime-radiant-inc/greenfield at commit 6e6d4b4, republished under its Apache-2.0 licence (© prime-radiant-inc). 982 words, ~2,890 tokens.
.claude/skills/ecosystem-analysis/SKILL.md (or your agent's skills folder).Extract behavioral specifications from third-party SDKs, client libraries, and ecosystem tooling. Every SDK that consumes the target's APIs encodes behavioral assumptions in executable logic -- the strongest form of specification.
Use SDK/Ecosystem mode when the target product has:
This mode runs independently of all other intelligence sources. It requires no source code access, no runtime execution, and no container. It needs only network access to package registries and code hosting platforms.
Targets without a public SDK or third-party client ecosystem get no useful signal from this mode — skip it.
SDK analysis draws only from published artifacts — client libraries on package registries, open-source community integrations, and the examples in official documentation. Nothing in this mode reads the target's source code; all inputs are material the target's vendor has already published for third-party developers to consume.
All SDK-derived intelligence is public origin and goes to workspace/public/ecosystem/.
| Agent | Purpose | Output |
|---|---|---|
sdk-analyzer | Discover and analyze SDK source code for behavioral assumptions | workspace/public/ecosystem/sdks/ |
integration-test-miner | Extract test vectors from SDK test suites and fixtures | workspace/public/ecosystem/tests/ |
Run sdk-analyzer first (it produces the SDK inventory), then integration-test-miner (it uses the inventory to find test suites).
digraph sdk_discovery {
rankdir=TB;
"Start SDK discovery" [shape=doublecircle];
"Search target docs for SDK links" [shape=box];
"Search package registries" [shape=box];
"Search GitHub/GitLab for client libraries" [shape=box];
"Classify each SDK: official vs community" [shape=box];
"Is it a wrapper SDK?" [shape=diamond];
"Is it stale (>2 years)?" [shape=diamond];
"Add to SDK inventory" [shape=box];
"Exclude from analysis" [shape=ellipse];
"Extract behavioral claims from SDK source" [shape=box];
"Mine integration tests for test vectors" [shape=box];
"Build cross-SDK consensus report" [shape=box];
"Discovery complete" [shape=doublecircle];
"Start SDK discovery" -> "Search target docs for SDK links";
"Search target docs for SDK links" -> "Search package registries";
"Search package registries" -> "Search GitHub/GitLab for client libraries";
"Search GitHub/GitLab for client libraries" -> "Classify each SDK: official vs community";
"Classify each SDK: official vs community" -> "Is it a wrapper SDK?";
"Is it a wrapper SDK?" -> "Exclude from analysis" [label="yes"];
"Is it a wrapper SDK?" -> "Is it stale (>2 years)?" [label="no"];
"Is it stale (>2 years)?" -> "Exclude from analysis" [label="yes"];
"Is it stale (>2 years)?" -> "Add to SDK inventory" [label="no"];
"Add to SDK inventory" -> "Extract behavioral claims from SDK source";
"Extract behavioral claims from SDK source" -> "Mine integration tests for test vectors";
"Mine integration tests for test vectors" -> "Build cross-SDK consensus report";
"Build cross-SDK consensus report" -> "Discovery complete";
}| Registry | Language | Search Pattern |
|---|---|---|
| npm | JavaScript/TypeScript | https://www.npmjs.com/search?q={target} |
| PyPI | Python | https://pypi.org/search/?q={target} |
| crates.io | Rust | https://crates.io/search?q={target} |
| Maven Central | Java/Kotlin | https://search.maven.org/search?q={target} |
| NuGet | C#/.NET | https://www.nuget.org/packages?q={target} |
| RubyGems | Ruby | https://rubygems.org/search?query={target} |
| pkg.go.dev | Go | https://pkg.go.dev/search?q={target} |
| Hex.pm | Elixir | https://hex.pm/packages?search={target} |
| Packagist | PHP | https://packagist.org/?query={target} |
For each discovered SDK, record: name, language, type (official/community), version, repository URL, package registry URL, last updated date, downloads/stars, maintainer, target API version, license.
| Category | What to Look For | How to Find It |
|---|---|---|
| API Surface | Endpoint URLs, HTTP methods, URL patterns | HTTP method calls, URL string literals, route constants |
| Request Schemas | Field names, types, required/optional, constraints | Object construction near HTTP calls, TypeScript interfaces, validation logic |
| Response Schemas | Parsed fields, types, structure | Response type definitions, JSON deserialization, field access patterns |
| Authentication | Token types, header names, credential flows | Authorization header, auth middleware, constructor parameters |
| Error Handling | Error codes, types, response format | Custom exception classes, error parsing, status code handling |
| Retry/Backoff | Retryable codes, backoff algorithm, retry headers | Retry loops, Retry-After parsing, backoff calculation |
| Versioning | API version in URL or headers | Version strings in paths, version headers |
| Pagination | Cursor/offset patterns, page size | Iterator classes, after/cursor/limit parameters |
| Streaming | SSE/WebSocket, event types, termination | SSE parsing, WebSocket handling, [DONE] signals |
| Timeouts | Default values, timeout configuration | Client construction defaults, timeout override mechanisms |
ref=https://github.com/org/repo/blob/v1.0.0/src/client.ts#L42inferred. One SDK author's assumption is not confirmed.confirmed. Independent implementations reaching the same conclusion is strong evidence.inferred. Record both claims with a disagreement note.| Type | Value | Characteristics |
|---|---|---|
| Integration tests | HIGH | Call the real target API or use recorded responses |
| Fixture-based tests | HIGHEST | Contain recorded HTTP interactions (literal target responses) |
| Unit tests (mocked) | LOW | Mock the target's responses; reveal SDK assumptions only |
test/, tests/, __tests__/, spec/, specs/, test_*/, *_test/, integration/package.json (Jest, Mocha, Vitest), setup.py/pyproject.toml (pytest), Cargo.toml (cargo test), pom.xml (JUnit).yml in cassettes/), Polly recordings, nock fixtures (.json), httpretty recordings### TV-SDK-{NNN}: {descriptive name}
**Source:** {sdk-name}, {file}:{line}
<!-- cite: source=sdk-analysis, ref={url}, confidence=inferred, agent=integration-test-miner -->
**Input:**
[JSON: method, path, headers, body]
**Expected Output:**
[JSON: status, headers, body]
**Behavioral claim:** {what this test proves}workspace/public/ecosystem/
+-- sdk-inventory.md # All SDKs discovered
+-- sdks/
| +-- {sdk-name}/
| +-- analysis.md # Full behavioral extraction
+-- tests/
| +-- test-inventory.md # All test suites found
| +-- extracted-vectors.md # Test cases as behavioral claims
| +-- fixtures/
| +-- {sdk-name}/ # Analyzed fixture content
+-- consensus.md # Multi-SDK agreement/disagreementAll citations use source=sdk-analysis. Ref format for GitHub-hosted SDKs:
ref=https://github.com/{org}/{repo}/blob/{version}/{file}#{line}For package registry sources:
ref=https://www.npmjs.com/package/{name}/v/{version}Initial confidence is inferred (single SDK). Escalates to confirmed through:
| Challenge | Mitigation |
|---|---|
| Outdated SDKs | Record version and date; prefer latest versions; cross-reference with other sources |
| SDK bugs | Analyze multiple SDKs; bugs in one are unlikely in independent implementations |
| Private/internal SDKs | Skip entirely; analyze only publicly available code |
| Large SDK codebases | Focus on API client layer; ignore utilities, build scripts, docs generators |
| Auto-generated SDKs | Still valuable (generated from an OpenAPI spec); look for hand-written patches |
| Wrapper SDKs | Identify by checking dependencies; exclude from consensus |
SDK findings flow to Layer 2 synthesis:
SDK test vectors flow to Layer 4:
© prime-radiant-inc, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/ecosystem-analysis of prime-radiant-inc/greenfield.
Open the folder on GitHubat commit 6e6d4b4
Ecosystem Analysis next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ecosystem Analysis this skillprime-radiant-inc/greenfield | 292 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Plugin Testingpolyipseity/obsidian-terminal | 951 | — | ~828 | Automated safety check: Pass | AGPL-3.0 | |
| Create Modulecartography-cncf/cartography | 4.1k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Td Integration Testmarcus/td | 251 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Integration E2E Testingshinpr/claude-code-workflows | 694 | — | ~3.5k | Automated safety check: Pass | MIT | |
| JS-in-HTML Testingliaohch3/claude-tap | 3.3k | — | ~924 | Automated safety check: Pass | MIT |
polyipseity/obsidian-terminal
Skill for testing Obsidian plugin features in this repository.
cartography-cncf/cartography
Author a new Cartography intel module end-to-end (entry point, sync GET/TRANSFORM/LOAD/CLEANUP, declarative data model, integration test, schema docs).
marcus/td
Write integration tests for the td-sync admin API using the TestHarness in internal/api/testharnesstest.go.
shinpr/claude-code-workflows
Integration and E2E test design principles, ROI calculation, test skeleton specification, and review criteria.
liaohch3/claude-tap
Tests JavaScript embedded in an HTML file in two layers: pytest checks of the logic ported to Python, and Playwright runs in a real browser for the DOM.
talkincode/toughradius
Write CI-executable acceptance/integration tests for protocol or end-to-end changes (TR-F022).
prime-radiant-inc/greenfield
Master methodology for reverse-engineering a codebase into behavioral specs with cited evidence, reading every line across source, binaries, docs, runtime and git history.
prime-radiant-inc/greenfield
Mines tutorials, forums, reviews, issues and changelogs for observed product behavior, using six search channels and consensus analysis.
prime-radiant-inc/greenfield
Runs untrusted analysis targets inside Docker or Podman containers with memory, CPU and process limits, covering image builds, lifecycle, command execution and cleanup.
prime-radiant-inc/greenfield
Finds OpenAPI, GraphQL, Protobuf and JSON Schema files in a codebase and extracts behavioral claims from them as part of a reverse-engineering workflow.
prime-radiant-inc/greenfield
Method for extracting behavioral specifications from a product's public documentation: tiered search order, claim extraction rules, output structure, stop criteria and gap analysis.
prime-radiant-inc/greenfield
Cross-validates sanitized output specs against raw source specs to detect lost behavioral detail, dropped constants, missing features, or diluted precision.
Categories
Layer 1 skill for SDK and ecosystem analysis. An agent skill from prime-radiant-inc/greenfield. Ecosystem Analysis is an agent skill from prime-radiant-inc/greenfield. Layer 1 skill for SDK and ecosystem analysis.
Ecosystem Analysis fits situations like: tasks that involve Integration testing.
Run `npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a claude-code`. Or copy the skill folder (skills/ecosystem-analysis in prime-radiant-inc/greenfield) into .claude/skills/ecosystem-analysis in your project. Claude Code loads it when a task matches its description.
Run `npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a codex`. Or copy the skill folder (skills/ecosystem-analysis in prime-radiant-inc/greenfield) into .agents/skills/ecosystem-analysis in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add prime-radiant-inc/greenfield --skill ecosystem-analysis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ecosystem-analysis, .gemini/skills/ecosystem-analysis, .github/skills/ecosystem-analysis and .opencode/skills/ecosystem-analysis in your project.
SKILL.md names no scripts, command-line tools or credentials: Ecosystem Analysis is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 10 domains. In commands or code: npmjs.com, github.com, pypi.org, crates.io, search.maven.org, nuget.org, rubygems.org, pkg.go.dev, hex.pm and packagist.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Ecosystem Analysis is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Ecosystem Analysis: Plugin Testing (polyipseity/obsidian-terminal, 951 stars), Create Module (cartography-cncf/cartography, 4.1k stars), Td Integration Test (marcus/td, 251 stars) and Integration E2E Testing (shinpr/claude-code-workflows, 694 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
prime-radiant-inc (a GitHub organization) maintains it in prime-radiant-inc/greenfield, which has 292 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on August 6, 2026.
Source: prime-radiant-inc/greenfield on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.