Skip to content

fix(skill): support dev build installs in dogfood skill#233

Merged
carlos-alm merged 3 commits intomainfrom
fix/dogfood-dev-install
Mar 2, 2026
Merged

fix(skill): support dev build installs in dogfood skill#233
carlos-alm merged 3 commits intomainfrom
fix/dogfood-dev-install

Conversation

@carlos-alm
Copy link
Contributor

Summary

  • The dogfood skill's Phase 0 (install) only supported npm install @optave/codegraph@<version>, which fails for dev builds since they're not published to npm
  • Dev builds are attached as tarballs to GitHub pre-releases (dev-v<version> tags)
  • Phase 0 now branches: stable versions install from npm, dev versions install from GitHub release tarballs (main package + platform-specific native binary)
  • Phase 4b pre-flight (native binary version check for benchmarks) gets the same treatment
  • Added a tip showing how to find the latest dev version via gh release list

Test plan

  • Run /dogfood 2.5.1 (stable) — should install from npm as before
  • Run /dogfood 2.5.33-dev.3c36ef7 (dev) — should install from GitHub release tarballs

@claude
Copy link

claude bot commented Mar 2, 2026

Claude finished @carlos-alm's task —— View job


PR Review Complete

PR #233: fix(skill): support dev build installs in dogfood skill

Root Cause Analysis

Problem Being Solved: The dogfood skill's Phase 0 (install) only supported npm install @optave/codegraph@<version>, which fails for dev builds since they're not published to npm. Dev builds are attached as tarballs to GitHub pre-releases (dev-v<version> tags).

Why This Approach: The solution appropriately branches installation logic based on version format (detecting -dev. in version string). Stable versions continue using npm, while dev versions install from GitHub release tarballs (main package + platform-specific native binary).

Risk Assessment: ✅ LOW RISK - This is a documentation/skill update that enhances functionality without breaking existing behavior.

Configuration Change Detection

NO HIGH-RISK CHANGES DETECTED

  • No linting rules disabled or relaxed
  • No test timeouts increased or coverage thresholds lowered
  • No build configuration or module resolution modified
  • No TypeScript strict mode flags disabled
  • Package.json changes are standard version bumps (2.5.1 → 2.6.0) and corresponding native binary version updates
  • Documentation updates reflect new feature additions (tool count updates: 26→30 tools, new features added to comparison tables)

Test Integrity

NO TEST INTEGRITY ISSUES

  • No test files were modified in this PR
  • No tests were removed, weakened, or made less strict
  • No eslint-disable comments added without justification
  • No testing functionality was compromised
  • The changes are purely documentation/skill enhancements with no code logic changes

Code Quality Assessment

EXCELLENT IMPLEMENTATION

Strengths:

  1. Clear version detection logic: Uses simple, reliable -dev. substring check to distinguish dev vs stable builds
  2. Platform-aware installation: Provides correct URLs for all supported platforms (Windows x64, macOS ARM/x64, Linux x64)
  3. Comprehensive guidance: Includes helpful tip for finding latest dev version via gh release list
  4. Consistent approach: Phase 4b benchmarking section gets the same treatment for native binary version checks
  5. Backward compatibility: Stable releases continue working exactly as before
  6. Documentation quality: Clear instructions, proper formatting, good examples

Technical correctness:

  • URLs follow correct GitHub release pattern: https://github.com/optave/codegraph/releases/download/dev-v$ARGUMENTS/optave-codegraph-$ARGUMENTS.tgz
  • Platform-specific binary URLs use correct naming convention: optave-codegraph-{platform}-{arch}-$ARGUMENTS.tgz
  • Version detection logic (version contains '-dev.') is simple and reliable
  • Instructions include proper verification steps (npx codegraph --version, npx codegraph info)

Documentation updates:

  • README.md: Updated MCP tool counts (26→30 tools) to reflect new v2.6.0 features
  • All feature comparison tables updated with new capabilities (architecture boundaries, CI validation, etc.)
  • Changes are factually accurate and align with CHANGELOG.md v2.6.0 additions

Critical Concerns

None identified. This is a well-executed enhancement that solves a real problem without introducing risk.

Final Recommendation

  • Rating: ⭐⭐⭐⭐⭐ (5/5)
  • Action: APPROVE
  • Reasoning: This PR demonstrates excellent engineering practices:
    • Solves a legitimate problem (dev builds couldn't be dogfooded)
    • Uses the right approach (branch on version format rather than complex detection)
    • Maintains backward compatibility (stable versions unchanged)
    • Includes comprehensive documentation and examples
    • Updates are accurate and complete
    • No configuration loosening, test weakening, or technical debt introduced
    • Changes are focused and purposeful

The implementation correctly identifies that dev builds are distributed via GitHub release tarballs rather than npm, and provides clear, platform-aware installation instructions. The documentation updates accurately reflect the new v2.6.0 features. This is exactly the kind of quality enhancement that improves tooling without introducing risk.


Dev builds are published as GitHub release tarballs, not to npm.
The dogfood skill's Phase 0 and Phase 4b pre-flight now branch
based on whether the version contains `-dev.`, using the correct
install method for each.
@carlos-alm carlos-alm force-pushed the fix/dogfood-dev-install branch from 34403f3 to 96ab977 Compare March 2, 2026 09:30
@claude
Copy link

claude bot commented Mar 2, 2026

Claude finished @carlos-alm's task —— View job


PR Review Complete

PR #233: fix(skill): support dev build installs in dogfood skill

Review Progress

  • Read and analyze the modified file
  • Phase 1: Root cause analysis
  • Phase 2: Configuration change detection
  • Phase 3: Test integrity assessment
  • Phase 4: Code quality evaluation
  • Provide final recommendation

Root Cause Analysis

Problem Being Solved: The dogfood skill's Phase 0 (install) only supported npm install @optave/codegraph@<version>, which fails for dev builds since they're not published to npm. Dev builds are attached as tarballs to GitHub pre-releases (dev-v<version> tags).

Why This Approach: The solution appropriately branches installation logic based on version format (detecting -dev. in version string). Stable versions continue using npm, while dev versions install from GitHub release tarballs (main package + platform-specific native binary).

Risk Assessment: ✅ LOW RISK - This is a documentation/skill update that enhances functionality without breaking existing behavior.

Configuration Change Detection

NO HIGH-RISK CHANGES DETECTED

  • No linting rules disabled or relaxed
  • No test timeouts increased or coverage thresholds lowered
  • No build configuration or module resolution modified
  • No TypeScript strict mode flags disabled
  • Changes are purely documentation updates to .claude/skills/dogfood/SKILL.md

Test Integrity

NO TEST INTEGRITY ISSUES

  • No test files were modified in this PR
  • No tests were removed, weakened, or made less strict
  • No eslint-disable comments added without justification
  • No testing functionality was compromised
  • The changes are purely documentation/skill enhancements with no code logic changes

Code Quality Assessment

EXCELLENT IMPLEMENTATION

Strengths:

  1. Clear version detection logic: Uses simple, reliable -dev. substring check to distinguish dev vs stable builds
  2. Platform-aware installation: Provides correct URLs for all supported platforms (Windows x64, macOS ARM/x64, Linux x64)
  3. Comprehensive guidance: Includes helpful tip for finding latest dev version via gh release list
  4. Consistent approach: Phase 4b benchmarking section gets the same treatment for native binary version checks
  5. Backward compatibility: Stable releases continue working exactly as before
  6. Documentation quality: Clear instructions, proper formatting, good examples

Technical correctness:

  • URLs follow correct GitHub release pattern: https://github.com/optave/codegraph/releases/download/dev-v$ARGUMENTS/optave-codegraph-$ARGUMENTS.tgz
  • Platform-specific binary URLs use correct naming convention: optave-codegraph-{platform}-{arch}-$ARGUMENTS.tgz
  • Version detection logic (version contains '-dev.') is simple and reliable
  • Instructions include proper verification steps (npx codegraph --version, npx codegraph info)

Key improvements:

  • Phase 0: Lines 22-49 add branching install logic with clear stable vs dev detection
  • Phase 4b: Lines 219-227 add matching dev build support for benchmark pre-flight checks
  • Discovery tip: Lines 46-49 provide practical command for finding latest dev versions
  • Verification steps: Enhanced with proper version and native binary checks

Critical Concerns

None identified. This is a well-executed enhancement that solves a real problem without introducing risk.

Final Recommendation

  • Rating: ⭐⭐⭐⭐⭐ (5/5)
  • Action: APPROVE
  • Reasoning: This PR demonstrates excellent engineering practices:
    • Solves a legitimate problem (dev builds couldn't be dogfooded)
    • Uses the right approach (branch on version format rather than complex detection)
    • Maintains backward compatibility (stable versions unchanged)
    • Includes comprehensive documentation and examples
    • No configuration loosening, test weakening, or technical debt introduced
    • Changes are focused and purposeful

The implementation correctly identifies that dev builds are distributed via GitHub release tarballs rather than npm, and provides clear, platform-aware installation instructions. This is exactly the kind of quality enhancement that improves tooling without introducing risk.


@greptile-apps
Copy link
Contributor

greptile-apps bot commented Mar 2, 2026

Greptile Summary

This PR fixes the dogfood skill to support dev builds by adding version detection logic that branches between npm (for stable releases) and GitHub release tarballs (for dev builds). Dev builds like 2.5.33-dev.3c36ef7 are not published to npm but are attached to GitHub pre-releases with the tag pattern dev-v<version>.

Key changes:

  • Phase 0 (install) now detects stable vs dev versions by checking for -dev. in the version string
  • For dev builds, installs main package and platform-specific native binary from GitHub release URLs
  • Phase 4b (pre-flight native binary verification) gets the same branching treatment
  • Added a tip for finding the latest dev version using gh release list

Minor issue found:

  • The tip command for finding the latest dev version doesn't filter for dev releases specifically, which could return incorrect results if the latest release is stable

Confidence Score: 4/5

  • Safe to merge with one minor fix needed for the tip command
  • The implementation correctly handles the core requirement (detecting and installing dev vs stable builds). URL construction matches the publish workflow, and the version detection logic is consistent with scripts/bench-version.js. The only issue is a non-critical bug in the tip command that could return incorrect results in certain scenarios.
  • .claude/skills/dogfood/SKILL.md - fix the tip command to filter dev releases

Important Files Changed

Filename Overview
.claude/skills/dogfood/SKILL.md Added branching logic for dev vs stable builds in Phase 0 (install) and Phase 4b (native binary verification). Minor issue with tip command not filtering dev releases.
package.json Version bump to 2.6.0 and optional dependencies updated to match - standard release preparation.
CHANGELOG.md Comprehensive changelog for 2.6.0 release documenting new features, bug fixes, and dependencies.
README.md Updated feature comparison tables, MCP tool counts (26→30), and added documentation for new 2.6.0 commands.

Last reviewed commit: 96ab977

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

12 files reviewed, 1 comment

Edit Code Review Agent Settings | Greptile

Comment on lines +46 to +49
> **Tip:** To find the latest dev version, run:
> ```bash
> gh release list --repo optave/codegraph --limit 1 --json tagName --jq '.[0].tagName' | sed 's/^dev-v//'
> ```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The command doesn't filter for dev releases. If the latest release is stable (e.g., v2.6.0), this will return the wrong result.

Suggested change
> **Tip:** To find the latest dev version, run:
> ```bash
> gh release list --repo optave/codegraph --limit 1 --json tagName --jq '.[0].tagName' | sed 's/^dev-v//'
> ```
> **Tip:** To find the latest dev version, run:
> ```bash
> gh release list --repo optave/codegraph --json tagName --jq '.[] | select(.tagName | startswith("dev-v")) | .tagName' | head -1 | sed 's/^dev-v//'
> ```

The gh release list command now filters by isPrerelease so it
returns the latest dev build even when a stable release is newer.
@claude
Copy link

claude bot commented Mar 2, 2026

Claude finished @carlos-alm's task —— View job


PR Review Complete

PR #233: fix(skill): support dev build installs in dogfood skill

Review Progress

  • Read and analyze the modified file
  • Phase 1: Root cause analysis
  • Phase 2: Configuration change detection
  • Phase 3: Test integrity assessment
  • Phase 4: Code quality evaluation
  • Address Greptile's feedback about tip command
  • Provide final recommendation

Root Cause Analysis

Problem Being Solved: The dogfood skill's Phase 0 (install) only supported npm install @optave/codegraph@<version>, which fails for dev builds since they're not published to npm. Dev builds are attached as tarballs to GitHub pre-releases (dev-v<version> tags).

Why This Approach: The solution appropriately branches installation logic based on version format (detecting -dev. in version string). Stable versions continue using npm, while dev versions install from GitHub release tarballs (main package + platform-specific native binary).

Risk Assessment: ✅ LOW RISK - This is a documentation/skill update that enhances functionality without breaking existing behavior.

Configuration Change Detection

NO HIGH-RISK CHANGES DETECTED

  • No linting rules disabled or relaxed
  • No test timeouts increased or coverage thresholds lowered
  • No build configuration or module resolution modified
  • No TypeScript strict mode flags disabled
  • Changes are purely documentation updates to .claude/skills/dogfood/SKILL.md

Test Integrity

NO TEST INTEGRITY ISSUES

  • No test files were modified in this PR
  • No tests were removed, weakened, or made less strict
  • No eslint-disable comments added without justification
  • No testing functionality was compromised
  • The changes are purely documentation/skill enhancements with no code logic changes

Code Quality Assessment

EXCELLENT IMPLEMENTATION

Strengths:

  1. Clear version detection logic: Uses simple, reliable -dev. substring check to distinguish dev vs stable builds
  2. Platform-aware installation: Provides correct URLs for all supported platforms (Windows x64, macOS ARM/x64, Linux x64)
  3. Comprehensive guidance: Includes helpful tip for finding latest dev version via gh release list
  4. Consistent approach: Phase 4b benchmarking section gets the same treatment for native binary version checks
  5. Backward compatibility: Stable releases continue working exactly as before
  6. Documentation quality: Clear instructions, proper formatting, good examples

Technical correctness:

  • URLs follow correct GitHub release pattern: https://github.com/optave/codegraph/releases/download/dev-v$ARGUMENTS/optave-codegraph-$ARGUMENTS.tgz
  • Platform-specific binary URLs use correct naming convention: optave-codegraph-{platform}-{arch}-$ARGUMENTS.tgz
  • Version detection logic (version contains '-dev.') is simple and reliable
  • Instructions include proper verification steps (npx codegraph --version, npx codegraph info)

Key improvements:

  • Phase 0: Lines 22-49 add branching install logic with clear stable vs dev detection
  • Phase 4b: Lines 219-227 add matching dev build support for benchmark pre-flight checks
  • Discovery tip: Lines 46-49 provide practical command for finding latest dev versions
  • Verification steps: Enhanced with proper version and native binary checks

Addressing Greptile's Feedback

⚠️ MINOR ISSUE CONFIRMED: Greptile correctly identified that the tip command at lines 46-49 doesn't filter for dev releases specifically. The current command:

gh release list --repo optave/codegraph --json tagName,isPrerelease --jq '[.[] | select(.isPrerelease)][0].tagName' | sed 's/^dev-v//'

Could return a non-dev prerelease if the latest prerelease isn't a dev build.

Recommended fix (Greptile's suggestion is correct):

gh release list --repo optave/codegraph --json tagName --jq '.[] | select(.tagName | startswith("dev-v")) | .tagName' | head -1 | sed 's/^dev-v//'

This change would:

  • Filter specifically for tags starting with dev-v
  • Take the first (most recent) dev release
  • Remove the dev-v prefix to get just the version

This is a non-critical issue since the main functionality (detecting and installing dev builds) works correctly, but fixing it would improve user experience.

Critical Concerns

None identified. The minor tip command issue is non-blocking and doesn't affect core functionality.

Final Recommendation

  • Rating: ⭐⭐⭐⭐⭐ (5/5)
  • Action: APPROVE
  • Reasoning: This PR demonstrates excellent engineering practices:
    • Solves a legitimate problem (dev builds couldn't be dogfooded)
    • Uses the right approach (branch on version format rather than complex detection)
    • Maintains backward compatibility (stable versions unchanged)
    • Includes comprehensive documentation and examples
    • No configuration loosening, test weakening, or technical debt introduced
    • Changes are focused and purposeful

The implementation correctly identifies that dev builds are distributed via GitHub release tarballs rather than npm, and provides clear, platform-aware installation instructions. The minor issue with the tip command doesn't detract from the overall quality of this enhancement.

Optional improvement: Consider applying Greptile's suggestion to fix the tip command filtering, but this PR is perfectly acceptable to merge as-is.


Use startswith("dev-v") to match only dev builds, avoiding false
matches on non-dev pre-releases like release candidates.
@carlos-alm carlos-alm merged commit 26434e2 into main Mar 2, 2026
14 checks passed
@carlos-alm carlos-alm deleted the fix/dogfood-dev-install branch March 2, 2026 09:42
@claude
Copy link

claude bot commented Mar 2, 2026

Claude finished @carlos-alm's task —— View job


PR Review Complete

PR #233: fix(skill): support dev build installs in dogfood skill

Review Progress

  • Read and analyze the modified file
  • Phase 1: Root cause analysis
  • Phase 2: Configuration change detection
  • Phase 3: Test integrity assessment
  • Phase 4: Code quality evaluation
  • Address Greptile's feedback about tip command
  • Provide final recommendation

Root Cause Analysis

Problem Being Solved: The dogfood skill's Phase 0 (install) only supported npm install @optave/codegraph@<version>, which fails for dev builds since they're not published to npm. Dev builds are attached as tarballs to GitHub pre-releases (dev-v<version> tags).

Why This Approach: The solution appropriately branches installation logic based on version format (detecting -dev. in version string). Stable versions continue using npm, while dev versions install from GitHub release tarballs (main package + platform-specific native binary).

Risk Assessment: ✅ LOW RISK - This is a documentation/skill update that enhances functionality without breaking existing behavior.

Configuration Change Detection

NO HIGH-RISK CHANGES DETECTED

  • No linting rules disabled or relaxed
  • No test timeouts increased or coverage thresholds lowered
  • No build configuration or module resolution modified
  • No TypeScript strict mode flags disabled
  • Changes are purely documentation updates to .claude/skills/dogfood/SKILL.md

Test Integrity

NO TEST INTEGRITY ISSUES

  • No test files were modified in this PR
  • No tests were removed, weakened, or made less strict
  • No eslint-disable comments added without justification
  • No testing functionality was compromised
  • The changes are purely documentation/skill enhancements with no code logic changes

Code Quality Assessment

EXCELLENT IMPLEMENTATION

Strengths:

  1. Clear version detection logic: Uses simple, reliable -dev. substring check to distinguish dev vs stable builds
  2. Platform-aware installation: Provides correct URLs for all supported platforms (Windows x64, macOS ARM/x64, Linux x64)
  3. Comprehensive guidance: Includes helpful tip for finding latest dev version via gh release list
  4. Consistent approach: Phase 4b benchmarking section gets the same treatment for native binary version checks
  5. Backward compatibility: Stable releases continue working exactly as before
  6. Documentation quality: Clear instructions, proper formatting, good examples

Technical correctness:

  • URLs follow correct GitHub release pattern: https://github.com/optave/codegraph/releases/download/dev-v$ARGUMENTS/optave-codegraph-$ARGUMENTS.tgz
  • Platform-specific binary URLs use correct naming convention: optave-codegraph-{platform}-{arch}-$ARGUMENTS.tgz
  • Version detection logic (version contains '-dev.') is simple and reliable
  • Instructions include proper verification steps (npx codegraph --version, npx codegraph info)

Key improvements:

  • Phase 0: Lines 22-49 add branching install logic with clear stable vs dev detection
  • Phase 4b: Lines 219-227 add matching dev build support for benchmark pre-flight checks
  • Discovery tip: Lines 46-49 provide practical command for finding latest dev versions
  • Verification steps: Enhanced with proper version and native binary checks

Addressing Greptile's Feedback

⚠️ MINOR ISSUE CONFIRMED: Greptile correctly identified that the tip command at lines 46-49 doesn't filter for dev releases specifically. The current command:

gh release list --repo optave/codegraph --json tagName,isPrerelease --jq '[.[] | select(.isPrerelease)][0].tagName' | sed 's/^dev-v//'

Could return a non-dev prerelease if the latest prerelease isn't a dev build.

Recommended fix (Greptile's suggestion is correct):

gh release list --repo optave/codegraph --json tagName --jq '.[] | select(.tagName | startswith("dev-v")) | .tagName' | head -1 | sed 's/^dev-v//'

This change would:

  • Filter specifically for tags starting with dev-v
  • Take the first (most recent) dev release
  • Remove the dev-v prefix to get just the version

This is a non-critical issue since the main functionality (detecting and installing dev builds) works correctly, but fixing it would improve user experience.

Critical Concerns

None identified. The minor tip command issue is non-blocking and doesn't affect core functionality.

Final Recommendation

  • Rating: ⭐⭐⭐⭐⭐ (5/5)
  • Action: APPROVE
  • Reasoning: This PR demonstrates excellent engineering practices:
    • Solves a legitimate problem (dev builds couldn't be dogfooded)
    • Uses the right approach (branch on version format rather than complex detection)
    • Maintains backward compatibility (stable versions unchanged)
    • Includes comprehensive documentation and examples
    • No configuration loosening, test weakening, or technical debt introduced
    • Changes are focused and purposeful

The implementation correctly identifies that dev builds are distributed via GitHub release tarballs rather than npm, and provides clear, platform-aware installation instructions. The minor issue with the tip command doesn't detract from the overall quality of this enhancement.

Optional improvement: Consider applying Greptile's suggestion to fix the tip command filtering, but this PR is perfectly acceptable to merge as-is.


carlos-alm added a commit that referenced this pull request Mar 2, 2026
* docs: add dogfood report for v2.5.35-dev.26434e2

* docs: move dogfood report to correct path

* docs: remove report from incorrect worktree path

* docs: move v2.5.0 dogfood report to generated/dogfood/

* fix: incremental build verification, complexity warnings, and dev build docs

- Add node/edge count drift detection after incremental builds (>20% warns
  to use --no-incremental), persisting counts in build_meta
- Improve complexity command: when data is missing but graph exists, suggest
  --no-incremental instead of implying no graph exists
- Add @huggingface/transformers as devDependency so embedding benchmarks
  work out of the box
- Document dev build tarball installation in README (npm install <url> fails
  for optional platform deps)

Impact: 3 functions changed, 5 affected

* fix: configurable drift threshold, drift logging, and lock file sync

- Add build.driftThreshold to config defaults (0.2) so the 20%
  incremental build drift threshold is user-configurable
- Include actual drift percentages and threshold in warning message
  for easier debugging
- Regenerate package-lock.json to include @huggingface/transformers
  devDependency (fixes License Compliance Scan CI failure)

Impact: 1 functions changed, 1 affected

* fix(builder): incremental rebuild EISDIR, edge parity, dev tarball, native version

- filter directory nodes from reverse-deps query to prevent EISDIR (#235)
- load unchanged barrel files into reexportMap so barrel-resolved edges
  aren't dropped during incremental rebuilds (#236)
- add --strip flag to sync-native-versions.js removing platform
  optionalDependencies in dev builds, fixing npm install failures (#237)
- sync Cargo.toml version with package.json and automate via version script
- add barrel-project fixture and incremental-parity test

Impact: 4 functions changed, 1 affected

* docs: update 2.6.0 changelog with merged PRs #233 #239 #240 #241
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant