diff --git a/.agents/skills/understand-quickly/SKILL.md b/.agents/skills/understand-quickly/SKILL.md new file mode 100644 index 0000000..486f04e --- /dev/null +++ b/.agents/skills/understand-quickly/SKILL.md @@ -0,0 +1,91 @@ +```markdown +# understand-quickly Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill teaches you the core development patterns and conventions used in the `understand-quickly` TypeScript repository. You'll learn about file naming, import/export styles, commit conventions, and how to write and run tests. This guide is ideal for contributors who want to quickly align with the project's established practices. + +## Coding Conventions + +### File Naming +- Use **camelCase** for file names. + - Example: `myUtility.ts`, `parseData.test.ts` + +### Import Style +- Use **relative imports** for referencing local modules. + - Example: + ```typescript + import { parseData } from './parseData'; + ``` + +### Export Style +- Use **named exports** instead of default exports. + - Example: + ```typescript + // In parseData.ts + export function parseData(input: string): ParsedResult { ... } + ``` + +### Commit Message Patterns +- Mixed commit types, commonly using the `fix` prefix. +- Average commit message length: ~59 characters. + - Example: `fix: correct parsing logic for edge cases` + +## Workflows + +### Code Contribution +**Trigger:** When adding or updating features or fixing bugs +**Command:** `/contribute` + +1. Create or update files using camelCase naming. +2. Use relative imports and named exports in your TypeScript files. +3. Write or update corresponding test files using the `*.test.*` pattern. +4. Commit changes with a descriptive message, prefixed with the type (e.g., `fix:`). +5. Open a pull request for review. + +### Writing Tests +**Trigger:** When adding new code or refactoring existing code +**Command:** `/write-test` + +1. Create a test file named `yourModule.test.ts` alongside the module. +2. Write tests using your preferred testing framework (framework is currently unknown). +3. Ensure tests cover all new or changed functionality. +4. Run tests locally to verify correctness. + +### Reviewing Code +**Trigger:** When reviewing a pull request +**Command:** `/review` + +1. Check that file naming, import, and export conventions are followed. +2. Verify that commit messages use the correct prefix and are descriptive. +3. Ensure all new code is covered by tests in `*.test.*` files. +4. Run the test suite to confirm all tests pass. + +## Testing Patterns + +- Test files follow the `*.test.*` naming convention (e.g., `parseData.test.ts`). +- The specific testing framework is not detected; use the project's existing test patterns as reference. +- Place test files alongside the modules they test. +- Tests should comprehensively cover the logic and edge cases of the module. + + Example: + ```typescript + // parseData.test.ts + import { parseData } from './parseData'; + + describe('parseData', () => { + it('should parse valid input', () => { + const result = parseData('input'); + expect(result).toEqual({ /* expected output */ }); + }); + }); + ``` + +## Commands +| Command | Purpose | +|----------------|----------------------------------------------------| +| /contribute | Start the code contribution workflow | +| /write-test | Begin writing or updating tests for your code | +| /review | Review code for conventions and test coverage | +``` \ No newline at end of file diff --git a/.agents/skills/understand-quickly/agents/openai.yaml b/.agents/skills/understand-quickly/agents/openai.yaml new file mode 100644 index 0000000..4f76121 --- /dev/null +++ b/.agents/skills/understand-quickly/agents/openai.yaml @@ -0,0 +1,6 @@ +interface: + display_name: "Understand Quickly" + short_description: "Repo-specific patterns and workflows for understand-quickly" + default_prompt: "Use the understand-quickly repo skill to follow existing architecture, testing, and workflow conventions." +policy: + allow_implicit_invocation: true \ No newline at end of file diff --git a/.claude/ecc-tools.json b/.claude/ecc-tools.json new file mode 100644 index 0000000..3ce539a --- /dev/null +++ b/.claude/ecc-tools.json @@ -0,0 +1,251 @@ +{ + "version": "1.3", + "schemaVersion": "1.0", + "generatedBy": "ecc-tools", + "generatedAt": "2026-05-20T01:30:45.793Z", + "repo": "https://github.com/cryptofixyup/understand-quickly", + "referenceSetReadiness": { + "score": 0, + "present": 0, + "total": 7, + "items": [ + { + "id": "deep-analyzer-corpus", + "label": "Deep analyzer corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add analyzer fixture, golden, benchmark, or reference-set files that can catch analyzer regressions." + }, + { + "id": "rag-evaluator", + "label": "RAG/evaluator comparison", + "status": "missing", + "evidence": [], + "recommendation": "Add retrieval or evaluator reference-set comparison fixtures with expected ranking behavior." + }, + { + "id": "pr-salvage", + "label": "PR salvage/review corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add stale-PR, review-thread, reopen-flow, or salvage reference cases for queue cleanup automation." + }, + { + "id": "discussion-triage", + "label": "Discussion triage corpus", + "status": "missing", + "evidence": [], + "recommendation": "Add public discussion triage fixtures, golden cases, or reference sets for informational, answered, and no-response classifications." + }, + { + "id": "harness-compatibility", + "label": "Harness compatibility", + "status": "missing", + "evidence": [], + "recommendation": "Add cross-harness, adapter-compliance, or harness-audit evidence for Claude, Codex, OpenCode, Zed, dmux, and agent surfaces." + }, + { + "id": "security-evidence", + "label": "Security evidence", + "status": "missing", + "evidence": [], + "recommendation": "Attach security evidence such as SBOMs, SARIF, audit reports, or AgentShield evidence packs." + }, + { + "id": "ci-failure-mode", + "label": "CI failure-mode evidence", + "status": "missing", + "evidence": [], + "recommendation": "Add captured CI failure logs, dry-run fixtures, or troubleshooting docs for common workflow failure modes." + } + ] + }, + "profiles": { + "requested": "security", + "recommended": "security", + "effective": "developer", + "requestedAlias": "security", + "recommendedAlias": "security", + "effectiveAlias": "developer" + }, + "requestedProfile": "security", + "profile": "developer", + "recommendedProfile": "security", + "effectiveProfile": "developer", + "tier": "free", + "requestedComponents": [ + "repo-baseline", + "workflow-automation", + "security-audits" + ], + "selectedComponents": [ + "repo-baseline", + "workflow-automation" + ], + "requestedAddComponents": [], + "requestedRemoveComponents": [], + "blockedRemovalComponents": [], + "tierFilteredComponents": [ + "security-audits" + ], + "requestedRootPackages": [ + "runtime-core", + "workflow-pack", + "agentshield-pack" + ], + "selectedRootPackages": [ + "runtime-core", + "workflow-pack" + ], + "requestedPackages": [ + "runtime-core", + "workflow-pack", + "agentshield-pack" + ], + "requestedAddPackages": [], + "requestedRemovePackages": [], + "selectedPackages": [ + "runtime-core", + "workflow-pack" + ], + "packages": [ + "runtime-core", + "workflow-pack" + ], + "blockedRemovalPackages": [], + "tierFilteredRootPackages": [ + "agentshield-pack" + ], + "tierFilteredPackages": [ + "agentshield-pack" + ], + "conflictingPackages": [], + "dependencyGraph": { + "runtime-core": [], + "workflow-pack": [ + "runtime-core" + ] + }, + "resolutionOrder": [ + "runtime-core", + "workflow-pack" + ], + "requestedModules": [ + "runtime-core", + "workflow-pack", + "agentshield-pack" + ], + "selectedModules": [ + "runtime-core", + "workflow-pack" + ], + "modules": [ + "runtime-core", + "workflow-pack" + ], + "managedFiles": [ + ".claude/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml" + ], + "packageFiles": { + "runtime-core": [ + ".claude/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml" + ] + }, + "moduleFiles": { + "runtime-core": [ + ".claude/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/SKILL.md", + ".agents/skills/understand-quickly/agents/openai.yaml", + ".claude/identity.json", + ".codex/config.toml", + ".codex/AGENTS.md", + ".codex/agents/explorer.toml", + ".codex/agents/reviewer.toml", + ".codex/agents/docs-researcher.toml", + ".claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml" + ] + }, + "files": [ + { + "moduleId": "runtime-core", + "path": ".claude/skills/understand-quickly/SKILL.md", + "description": "Repository-specific Claude Code skill generated from git history." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/understand-quickly/SKILL.md", + "description": "Codex-facing copy of the generated repository skill." + }, + { + "moduleId": "runtime-core", + "path": ".agents/skills/understand-quickly/agents/openai.yaml", + "description": "Codex skill metadata so the repo skill appears cleanly in the skill interface." + }, + { + "moduleId": "runtime-core", + "path": ".claude/identity.json", + "description": "Suggested identity.json baseline derived from repository conventions." + }, + { + "moduleId": "runtime-core", + "path": ".codex/config.toml", + "description": "Repo-local Codex MCP and multi-agent baseline aligned with ECC defaults." + }, + { + "moduleId": "runtime-core", + "path": ".codex/AGENTS.md", + "description": "Codex usage guide that points at the generated repo skill and workflow bundle." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/explorer.toml", + "description": "Read-only explorer role config for Codex multi-agent work." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/reviewer.toml", + "description": "Read-only reviewer role config focused on correctness and security." + }, + { + "moduleId": "runtime-core", + "path": ".codex/agents/docs-researcher.toml", + "description": "Read-only docs researcher role config for API verification." + }, + { + "moduleId": "runtime-core", + "path": ".claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml", + "description": "Continuous-learning instincts derived from repository patterns." + } + ], + "workflows": [], + "adapters": { + "claudeCode": { + "skillPath": ".claude/skills/understand-quickly/SKILL.md", + "identityPath": ".claude/identity.json", + "commandPaths": [] + }, + "codex": { + "configPath": ".codex/config.toml", + "agentsGuidePath": ".codex/AGENTS.md", + "skillPath": ".agents/skills/understand-quickly/SKILL.md" + } + } +} \ No newline at end of file diff --git a/.claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml b/.claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml new file mode 100644 index 0000000..aa9b7bc --- /dev/null +++ b/.claude/homunculus/instincts/inherited/understand-quickly-instincts.yaml @@ -0,0 +1,278 @@ +# Instincts generated from https://github.com/cryptofixyup/understand-quickly +# Generated: 2026-05-20T01:31:02.128Z +# Version: 2.0 +# NOTE: This file supplements (does not replace) any existing curated instincts. +# High-confidence manually curated instincts should be preserved alongside these. + +--- +id: understand-quickly-commit-length +trigger: "when writing a commit message" +confidence: 0.6 +domain: git +source: repo-analysis +source_repo: https://github.com/cryptofixyup/understand-quickly +--- + +# Understand Quickly Commit Length + +## Action + +Write moderate-length commit messages (~59 characters) + +## Evidence + +- Average commit message length: 59 chars +- Based on 2 commits + +--- +id: understand-quickly-naming-files +trigger: "when creating a new file" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: https://github.com/cryptofixyup/understand-quickly +--- + +# Understand Quickly Naming Files + +## Action + +Use camelCase naming convention + +## Evidence + +- Analyzed file naming patterns in repository +- Dominant pattern: camelCase + +--- +id: understand-quickly-import-relative +trigger: "when importing modules" +confidence: 0.75 +domain: code-style +source: repo-analysis +source_repo: https://github.com/cryptofixyup/understand-quickly +--- + +# Understand Quickly Import Relative + +## Action + +Use relative imports for project files + +## Evidence + +- Import analysis shows relative import pattern +- Example: import { x } from '../lib/x' + +--- +id: understand-quickly-export-style +trigger: "when exporting from a module" +confidence: 0.7 +domain: code-style +source: repo-analysis +source_repo: https://github.com/cryptofixyup/understand-quickly +--- + +# Understand Quickly Export Style + +## Action + +Prefer named exports + +## Evidence + +- Export pattern analysis +- Dominant style: named + +--- +id: understand-quickly-test-separate +trigger: "when writing tests" +confidence: 0.8 +domain: testing +source: repo-analysis +source_repo: https://github.com/cryptofixyup/understand-quickly +--- + +# Understand Quickly Test Separate + +## Action + +Place tests in the tests/ or __tests__/ directory, mirroring src structure + +## Evidence + +- Separate test directory pattern detected +- Tests live in dedicated test folders + +--- +id: understand-quickly-instinct-file-naming +trigger: "When creating a new file" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct File Naming + +## Action + +Name the file using camelCase + +## Evidence + +- Pattern in codeStyle.namingConventions.files + +--- +id: understand-quickly-instinct-function-naming +trigger: "When defining a function" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Function Naming + +## Action + +Name the function using camelCase + +## Evidence + +- Pattern in codeStyle.namingConventions.functions + +--- +id: understand-quickly-instinct-class-naming +trigger: "When defining a class" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Class Naming + +## Action + +Name the class using PascalCase + +## Evidence + +- Pattern in codeStyle.namingConventions.classes + +--- +id: understand-quickly-instinct-constant-naming +trigger: "When declaring a constant" +confidence: 0.9 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Constant Naming + +## Action + +Name the constant using SCREAMING_SNAKE_CASE + +## Evidence + +- Pattern in codeStyle.namingConventions.constants + +--- +id: understand-quickly-instinct-import-style +trigger: "When importing modules" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Import Style + +## Action + +Use relative import paths + +## Evidence + +- Pattern in codeStyle.importStyle + +--- +id: understand-quickly-instinct-export-style +trigger: "When exporting from a module" +confidence: 0.8 +domain: code-style +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Export Style + +## Action + +Use named exports + +## Evidence + +- Pattern in codeStyle.exportStyle + +--- +id: understand-quickly-instinct-git-commit-prefix +trigger: "When writing a commit message for a bug fix" +confidence: 0.9 +domain: git +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Git Commit Prefix + +## Action + +Prefix the commit message with 'fix:' + +## Evidence + +- Seen in commit 'fix: unquote test glob so Node 20/18 can expand it via the shell' +- Pattern in commits.prefixes + +--- +id: understand-quickly-instinct-git-commit-length +trigger: "When writing a commit message" +confidence: 0.7 +domain: git +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Git Commit Length + +## Action + +Keep the commit message concise (around 59 characters on average) + +## Evidence + +- Pattern in commits.averageLength + +--- +id: understand-quickly-instinct-test-location +trigger: "When adding new tests" +confidence: 0.8 +domain: testing +source: repo-analysis +source_repo: cryptofixyup/understand-quickly +--- + +# Understand Quickly Instinct Test Location + +## Action + +Place test files in a separate directory from source files + +## Evidence + +- Pattern in architecture.folderStructure.testLocation + diff --git a/.claude/identity.json b/.claude/identity.json new file mode 100644 index 0000000..70a6bb9 --- /dev/null +++ b/.claude/identity.json @@ -0,0 +1,14 @@ +{ + "version": "2.0", + "technicalLevel": "technical", + "preferredStyle": { + "verbosity": "detailed", + "codeComments": true, + "explanations": true + }, + "domains": [ + "typescript" + ], + "suggestedBy": "ecc-tools-repo-analysis", + "createdAt": "2026-05-20T01:31:02.128Z" +} \ No newline at end of file diff --git a/.claude/skills/understand-quickly/SKILL.md b/.claude/skills/understand-quickly/SKILL.md new file mode 100644 index 0000000..486f04e --- /dev/null +++ b/.claude/skills/understand-quickly/SKILL.md @@ -0,0 +1,91 @@ +```markdown +# understand-quickly Development Patterns + +> Auto-generated skill from repository analysis + +## Overview +This skill teaches you the core development patterns and conventions used in the `understand-quickly` TypeScript repository. You'll learn about file naming, import/export styles, commit conventions, and how to write and run tests. This guide is ideal for contributors who want to quickly align with the project's established practices. + +## Coding Conventions + +### File Naming +- Use **camelCase** for file names. + - Example: `myUtility.ts`, `parseData.test.ts` + +### Import Style +- Use **relative imports** for referencing local modules. + - Example: + ```typescript + import { parseData } from './parseData'; + ``` + +### Export Style +- Use **named exports** instead of default exports. + - Example: + ```typescript + // In parseData.ts + export function parseData(input: string): ParsedResult { ... } + ``` + +### Commit Message Patterns +- Mixed commit types, commonly using the `fix` prefix. +- Average commit message length: ~59 characters. + - Example: `fix: correct parsing logic for edge cases` + +## Workflows + +### Code Contribution +**Trigger:** When adding or updating features or fixing bugs +**Command:** `/contribute` + +1. Create or update files using camelCase naming. +2. Use relative imports and named exports in your TypeScript files. +3. Write or update corresponding test files using the `*.test.*` pattern. +4. Commit changes with a descriptive message, prefixed with the type (e.g., `fix:`). +5. Open a pull request for review. + +### Writing Tests +**Trigger:** When adding new code or refactoring existing code +**Command:** `/write-test` + +1. Create a test file named `yourModule.test.ts` alongside the module. +2. Write tests using your preferred testing framework (framework is currently unknown). +3. Ensure tests cover all new or changed functionality. +4. Run tests locally to verify correctness. + +### Reviewing Code +**Trigger:** When reviewing a pull request +**Command:** `/review` + +1. Check that file naming, import, and export conventions are followed. +2. Verify that commit messages use the correct prefix and are descriptive. +3. Ensure all new code is covered by tests in `*.test.*` files. +4. Run the test suite to confirm all tests pass. + +## Testing Patterns + +- Test files follow the `*.test.*` naming convention (e.g., `parseData.test.ts`). +- The specific testing framework is not detected; use the project's existing test patterns as reference. +- Place test files alongside the modules they test. +- Tests should comprehensively cover the logic and edge cases of the module. + + Example: + ```typescript + // parseData.test.ts + import { parseData } from './parseData'; + + describe('parseData', () => { + it('should parse valid input', () => { + const result = parseData('input'); + expect(result).toEqual({ /* expected output */ }); + }); + }); + ``` + +## Commands +| Command | Purpose | +|----------------|----------------------------------------------------| +| /contribute | Start the code contribution workflow | +| /write-test | Begin writing or updating tests for your code | +| /review | Review code for conventions and test coverage | +``` \ No newline at end of file diff --git a/.codex/AGENTS.md b/.codex/AGENTS.md new file mode 100644 index 0000000..cd3ac67 --- /dev/null +++ b/.codex/AGENTS.md @@ -0,0 +1,26 @@ +# ECC for Codex CLI + +This supplements the root `AGENTS.md` with a repo-local ECC baseline. + +## Repo Skill + +- Repo-generated Codex skill: `.agents/skills/understand-quickly/SKILL.md` +- Claude-facing companion skill: `.claude/skills/understand-quickly/SKILL.md` +- Keep user-specific credentials and private MCPs in `~/.codex/config.toml`, not in this repo. + +## MCP Baseline + +Treat `.codex/config.toml` as the default ECC-safe baseline for work in this repository. +The generated baseline enables GitHub, Context7, Exa, Memory, Playwright, and Sequential Thinking. + +## Multi-Agent Support + +- Explorer: read-only evidence gathering +- Reviewer: correctness, security, and regression review +- Docs researcher: API and release-note verification + +## Workflow Files + +- No dedicated workflow command files were generated for this repo. + +Use these workflow files as reusable task scaffolds when the detected repository workflows recur. \ No newline at end of file diff --git a/.codex/agents/docs-researcher.toml b/.codex/agents/docs-researcher.toml new file mode 100644 index 0000000..0daae57 --- /dev/null +++ b/.codex/agents/docs-researcher.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "medium" +sandbox_mode = "read-only" + +developer_instructions = """ +Verify APIs, framework behavior, and release-note claims against primary documentation before changes land. +Cite the exact docs or file paths that support each claim. +Do not invent undocumented behavior. +""" \ No newline at end of file diff --git a/.codex/agents/explorer.toml b/.codex/agents/explorer.toml new file mode 100644 index 0000000..732df7a --- /dev/null +++ b/.codex/agents/explorer.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "medium" +sandbox_mode = "read-only" + +developer_instructions = """ +Stay in exploration mode. +Trace the real execution path, cite files and symbols, and avoid proposing fixes unless the parent agent asks for them. +Prefer targeted search and file reads over broad scans. +""" \ No newline at end of file diff --git a/.codex/agents/reviewer.toml b/.codex/agents/reviewer.toml new file mode 100644 index 0000000..b13ed9c --- /dev/null +++ b/.codex/agents/reviewer.toml @@ -0,0 +1,9 @@ +model = "gpt-5.4" +model_reasoning_effort = "high" +sandbox_mode = "read-only" + +developer_instructions = """ +Review like an owner. +Prioritize correctness, security, behavioral regressions, and missing tests. +Lead with concrete findings and avoid style-only feedback unless it hides a real bug. +""" \ No newline at end of file diff --git a/.codex/config.toml b/.codex/config.toml new file mode 100644 index 0000000..bc1ee67 --- /dev/null +++ b/.codex/config.toml @@ -0,0 +1,48 @@ +#:schema https://developers.openai.com/codex/config-schema.json + +# ECC Tools generated Codex baseline +approval_policy = "on-request" +sandbox_mode = "workspace-write" +web_search = "live" + +[mcp_servers.github] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-github"] + +[mcp_servers.context7] +command = "npx" +args = ["-y", "@upstash/context7-mcp@latest"] + +[mcp_servers.exa] +url = "https://mcp.exa.ai/mcp" + +[mcp_servers.memory] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-memory"] + +[mcp_servers.playwright] +command = "npx" +args = ["-y", "@playwright/mcp@latest", "--extension"] + +[mcp_servers.sequential-thinking] +command = "npx" +args = ["-y", "@modelcontextprotocol/server-sequential-thinking"] + +[features] +multi_agent = true + +[agents] +max_threads = 6 +max_depth = 1 + +[agents.explorer] +description = "Read-only codebase explorer for gathering evidence before changes are proposed." +config_file = "agents/explorer.toml" + +[agents.reviewer] +description = "PR reviewer focused on correctness, security, and missing tests." +config_file = "agents/reviewer.toml" + +[agents.docs_researcher] +description = "Documentation specialist that verifies APIs, framework behavior, and release notes." +config_file = "agents/docs-researcher.toml" \ No newline at end of file diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml new file mode 100644 index 0000000..2284b93 --- /dev/null +++ b/.github/workflows/node.js.yml @@ -0,0 +1,31 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs + +name: Node.js CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x, 20.x, 22.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: npm ci + - run: npm run build --if-present + - run: npm test diff --git a/README.md b/README.md index 8d07845..7ca8b32 100644 --- a/README.md +++ b/README.md @@ -187,9 +187,9 @@ Drop [`docs/publish-template.yml`](docs/publish-template.yml) into your repo as | Repo | Format | Description | Status | Last synced | | --- | --- | --- | :---: | --- | -| [understand-quickly/demo-code-review-graph](https://github.com/understand-quickly/demo-code-review-graph) | `code-review-graph@1` | Demo entry: a sample code-review-graph export covering files, classes, and tests. | ✅ ok | 2026-05-09 | -| [understand-quickly/demo-gitnexus](https://github.com/understand-quickly/demo-gitnexus) | `gitnexus@1` | Demo entry: a sample GitNexus graph modeled on its own codebase. | ✅ ok | 2026-05-09 | -| [understand-quickly/demo-understand-anything](https://github.com/understand-quickly/demo-understand-anything) | `understand-anything@1` | Demo entry: a hand-built sample knowledge graph in the understand-anything@1 shape. | ✅ ok | 2026-05-09 | +| [understand-quickly/demo-code-review-graph](https://github.com/understand-quickly/demo-code-review-graph) | `code-review-graph@1` | Demo entry: a sample code-review-graph export covering files, classes, and tests. | ✅ ok | 2026-05-19 | +| [understand-quickly/demo-gitnexus](https://github.com/understand-quickly/demo-gitnexus) | `gitnexus@1` | Demo entry: a sample GitNexus graph modeled on its own codebase. | ✅ ok | 2026-05-19 | +| [understand-quickly/demo-understand-anything](https://github.com/understand-quickly/demo-understand-anything) | `understand-anything@1` | Demo entry: a hand-built sample knowledge graph in the understand-anything@1 shape. | ✅ ok | 2026-05-19 | ## Status legend diff --git a/registry.json b/registry.json index b5ba705..bfa194a 100644 --- a/registry.json +++ b/registry.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "generated_at": "2026-05-09T04:09:10.746Z", + "generated_at": "2026-05-19T06:53:15.711Z", "entries": [ { "id": "understand-quickly/demo-code-review-graph", @@ -19,7 +19,7 @@ "last_error": null, "last_sha": "db43045f1341c8ba1f20c666497bc78500fad64b411ed8a8b6836e958d58fb39", "size_bytes": 8545, - "last_synced": "2026-05-09T04:09:10.746Z", + "last_synced": "2026-05-19T06:53:15.497Z", "nodes_count": 7, "edges_count": 7, "top_kinds": [ @@ -46,7 +46,7 @@ "source_sha": null, "head_sha": null, "commits_behind": null, - "drift_checked_at": "2026-05-09T04:09:10.683Z" + "drift_checked_at": "2026-05-19T06:53:15.396Z" }, { "id": "understand-quickly/demo-gitnexus", @@ -65,7 +65,7 @@ "last_error": null, "last_sha": "5c9a843fa7ffda007cc4ef4fce80beb54bbdd5d8995db06b8db606980c07239a", "size_bytes": 8713, - "last_synced": "2026-05-09T04:09:10.629Z", + "last_synced": "2026-05-19T06:53:15.617Z", "nodes_count": 8, "edges_count": 10, "top_kinds": [ @@ -100,7 +100,7 @@ "source_sha": null, "head_sha": null, "commits_behind": null, - "drift_checked_at": "2026-05-09T04:09:10.559Z" + "drift_checked_at": "2026-05-19T06:53:15.554Z" }, { "id": "understand-quickly/demo-understand-anything", @@ -117,7 +117,7 @@ "miss_count": 0, "status": "ok", "last_error": null, - "last_synced": "2026-05-09T04:09:10.475Z", + "last_synced": "2026-05-19T06:53:15.710Z", "last_sha": "8076fa075a94ade41b2df7f3a8f1f6a8ace220f609ec5823be51e47ab30b418b", "size_bytes": 4366, "nodes_count": 10, @@ -144,7 +144,7 @@ "source_sha": null, "head_sha": null, "commits_behind": null, - "drift_checked_at": "2026-05-09T04:09:10.392Z" + "drift_checked_at": "2026-05-19T06:53:15.648Z" } ], "last_drift_index": 0 diff --git a/site/.well-known/repos.json b/site/.well-known/repos.json index 7eb61fa..2794085 100644 --- a/site/.well-known/repos.json +++ b/site/.well-known/repos.json @@ -5,7 +5,7 @@ "id": "understand-quickly/demo-code-review-graph", "format": "code-review-graph@1", "graph_url": "https://looptech-ai.github.io/understand-quickly/schemas/__fixtures__/code-review-graph/real-sample.json", - "last_synced": "2026-05-09T04:09:10.746Z", + "last_synced": "2026-05-19T06:53:15.497Z", "status": "ok", "source_sha": null }, @@ -13,7 +13,7 @@ "id": "understand-quickly/demo-gitnexus", "format": "gitnexus@1", "graph_url": "https://looptech-ai.github.io/understand-quickly/schemas/__fixtures__/gitnexus/real-sample.json", - "last_synced": "2026-05-09T04:09:10.629Z", + "last_synced": "2026-05-19T06:53:15.617Z", "status": "ok", "source_sha": null }, @@ -21,7 +21,7 @@ "id": "understand-quickly/demo-understand-anything", "format": "understand-anything@1", "graph_url": "https://looptech-ai.github.io/understand-quickly/schemas/__fixtures__/understand-anything/real-sample.json", - "last_synced": "2026-05-09T04:09:10.475Z", + "last_synced": "2026-05-19T06:53:15.710Z", "status": "ok", "source_sha": null } diff --git a/site/stats.json b/site/stats.json index 86431a3..25afa57 100644 --- a/site/stats.json +++ b/site/stats.json @@ -1,6 +1,6 @@ { "schema_version": 1, - "generated_at": "2026-05-09T04:09:11.078Z", + "generated_at": "2026-05-19T06:53:16.040Z", "totals": { "entries": 3, "nodes": 25,