adr
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Portfolio system knowledge base. Use when: position queries, routing strategy questions, provider integration. Not for: general code exploration (use code-explore), code review (use codex-code-review). Output: domain-specific analysis + recommendations.
Claude Code
$ npx -y skills add sd0xdev/sd0x-harness --skill portfolio --agent claude-code
Codex
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a codex -y
Cursor
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a cursor -y
Gemini CLI
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a gemini-cli -y
GitHub Copilot
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a github-copilot -y
OpenCode
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a opencode -y
Windsurf
$ npx skills add sd0xdev/sd0x-harness --skill portfolio -a windsurf -y
name: portfolio description: "Portfolio system knowledge base. Use when: position queries, routing strategy questions, provider integration. Not for: general code exploration (use code-explore), code review (use codex-code-review). Output: domain-specific analysis + recommendations." allowed-tools: Read, Grep, Glob context: fork agent: Explore
| Type | File | Purpose | | ---------- | -------------------------------------------------- | ----------------------- | | Controller | `src/entity/portfolio/portfolio.controller.ts` | REST API | | Router | `src/service/portfolio/source-router/*.service.ts` | Routing orchestration | | Client | `src/service/portfolio/providers/{provider}/*.ts` | {PRIMARY_PROVIDER} integration | | Aggregator | `src/service/portfolio/aggregation/*.service.ts` | Aggregation computation | | DTO | `src/dto/portfolio/position.types.ts` | Position model |
**Base**: `/onchain/v1/portfolio`
| Endpoint | Method | Purpose | | ------------ | ------ | --------------------- | | `/positions` | POST | Get portfolio positions | | `/chains` | GET | Supported chains list | | `/protocols` | GET | Supported protocols list |
1. Check if {PRIMARY_PROVIDER} supports it 2. If custom build needed: implement `PortfolioPositionExtractor` + register + configure routing
1. Implement `ProviderClient` + `Adapter` 2. Register with `SourceRouter` 3. Configure routing strategy
redis-cli keys "portfolio:{provider}:*"
redis-cli get "portfolio:{provider}:positions:0x...:v2:..."
curl -X POST /positions -d '{"isForceRefresh": true, ...}'| Type | Location | | ----------- | ------------------------------ | | Unit | `test/unit/service/portfolio/` | | Integration | `test/integration/portfolio/` |
Input: How to query portfolio positions? Action: Explain POST /positions API + routing strategy
Input: How does {PRIMARY_PROVIDER} integration work?
Action: Explain {PRIMARY_PROVIDER}Client + {PRIMARY_PROVIDER}Adapter flowLanguage: English | 繁體中文 | 简体中文 | 日本語 | 한국어 | Español The harness layer for Claude Code. Let the model choose the path. Keep "done" verifiable. Claude has discretion inside a closed, test-pinned anchor set.
Write an Architecture Decision Record (ADR) for a feature — Context / Decision / Status / Consequences / Alternatives, filed as…
Install and set up the optional agentctl mod (task scope, refusal before execution, evidence that goes stale, model-free…
Architecture design and documentation. Produces 3-architecture.md with component diagrams, data flow, integration points, and…
Context-aware Q&A with auto context gathering. Use when: user has a quick question about codebase, git history, rules, docs, or…
Industry best practices conformance audit with mandatory adversarial debate. Produces audit artifact: verdict (OK/WARN/FAIL) +…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.