octocode-cli 1.3.0 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +129 -28
- package/out/chunks/chunk-7476PETK.js +309 -0
- package/out/chunks/chunk-CVNNNSMQ.js +26 -0
- package/out/chunks/chunk-OQBJTZWK.js +60 -0
- package/out/chunks/chunk-UCZCF3BQ.js +9 -0
- package/out/chunks/command-help-specs-JZXVSLZ5.js +8 -0
- package/out/chunks/commands-XBFPLHSQ.js +8 -0
- package/out/chunks/help-P7TCOYAJ.js +10 -0
- package/out/chunks/main-help-ULF5PAQY.js +10 -0
- package/out/chunks/prompts-5E6VKRX5.js +8 -0
- package/out/chunks/spinner-URV2OX6O.js +8 -0
- package/out/chunks/tool-command-M6VA7P2F.js +8 -0
- package/out/octocode-cli.js +1 -1
- package/package.json +5 -3
- package/skills/README.md +60 -58
- package/skills/agentic-flow-best-practices/SKILL.md +280 -0
- package/skills/agentic-flow-best-practices/references/agent-collaboration-patterns.md +75 -0
- package/skills/agentic-flow-best-practices/references/pr-review-agent-example.md +47 -0
- package/skills/agentic-flow-best-practices/references/resources.md +112 -0
- package/skills/octocode-brainstorming/.env.example +11 -0
- package/skills/octocode-brainstorming/SKILL.md +262 -0
- package/skills/octocode-brainstorming/scripts/tavily-search.mjs +138 -0
- package/skills/octocode-chrome-devtools/README.md +541 -0
- package/skills/octocode-chrome-devtools/SKILL.md +197 -0
- package/skills/octocode-chrome-devtools/agents/openai.yaml +7 -0
- package/skills/octocode-chrome-devtools/references/CDP_AGENT_REFERENCE.md +401 -0
- package/skills/octocode-chrome-devtools/references/CHROME_FLAGS.md +234 -0
- package/skills/octocode-chrome-devtools/references/INTENTS.md +108 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_AUTH.md +179 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_AUTOMATION.md +214 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_DEBUG.md +329 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_ENVIRONMENT.md +237 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_INSPECT.md +263 -0
- package/skills/octocode-chrome-devtools/references/INTENTS_STORAGE_CONSENT.md +214 -0
- package/skills/octocode-chrome-devtools/references/RECOVERY.md +39 -0
- package/skills/octocode-chrome-devtools/references/SCRIPT_PATTERNS.md +43 -0
- package/skills/octocode-chrome-devtools/references/SCRIPT_PATTERNS_ASYNC_WORKERS.md +345 -0
- package/skills/octocode-chrome-devtools/references/SCRIPT_PATTERNS_BROWSER.md +403 -0
- package/skills/octocode-chrome-devtools/references/SCRIPT_PATTERNS_OBSERVE.md +275 -0
- package/skills/octocode-chrome-devtools/references/SCRIPT_PATTERNS_SPECIAL.md +18 -0
- package/skills/octocode-chrome-devtools/scripts/cdp-runner.mjs +503 -0
- package/skills/octocode-chrome-devtools/scripts/cdp-sandbox.mjs +123 -0
- package/skills/octocode-chrome-devtools/scripts/cdp-template.mjs +81 -0
- package/skills/octocode-chrome-devtools/scripts/octocode-chrome-devtools.vpn.example.json +8 -0
- package/skills/octocode-chrome-devtools/scripts/open-browser.mjs +362 -0
- package/skills/octocode-chrome-devtools/scripts/sourcemap-resolver.mjs +193 -0
- package/skills/octocode-chrome-devtools/scripts/undercover.mjs +226 -0
- package/skills/octocode-design/README.md +2 -2
- package/skills/octocode-documentation-writer/README.md +1 -1
- package/skills/octocode-engineer/README.md +1 -1
- package/skills/octocode-engineer/SKILL.md +137 -306
- package/skills/octocode-engineer/references/cli-reference.md +13 -0
- package/skills/octocode-engineer/references/output-files.md +3 -3
- package/skills/octocode-engineer/scripts/run.js +146 -146
- package/skills/octocode-engineer/src/pipeline/main.ts +1 -17
- package/skills/octocode-engineer/src/pipeline/progress.ts +4 -0
- package/skills/octocode-engineer/src/reporting/summary-md.test.ts +48 -0
- package/skills/octocode-engineer/src/reporting/summary-md.ts +43 -2
- package/skills/octocode-install/SKILL.md +1 -1
- package/skills/octocode-pull-request-reviewer/README.md +5 -5
- package/skills/octocode-pull-request-reviewer/SKILL.md +1 -1
- package/skills/octocode-research/AGENTS.md +1 -1
- package/skills/octocode-research/README.md +2 -2
- package/skills/octocode-research/docs/ARCHITECTURE.md +1 -1
- package/skills/octocode-research/scripts/server.js +184 -239
- package/skills/octocode-research/src/routes/github.ts +4 -21
- package/skills/octocode-research/src/routes/local.ts +4 -21
- package/skills/octocode-research/src/utils/fileContentTransform.ts +44 -0
- package/skills/octocode-search-skill/SKILL.md +337 -0
- package/skills/octocode-search-skill/references/agent-skills-guide.md +177 -0
- package/skills/octocode-search-skill/references/discovery-surfaces.md +162 -0
- package/skills/octocode-search-skill/references/fetch-and-create-locally.md +57 -0
- package/skills/octocode-search-skill/references/install-reference.md +130 -0
- package/skills/octocode-search-skill/references/references-template.md +27 -0
- package/skills/octocode-search-skill/references/references.md +62 -0
- package/skills/octocode-slides/README.md +307 -0
- package/skills/octocode-slides/SKILL.md +410 -0
- package/skills/octocode-slides/references/01-brief.md +156 -0
- package/skills/octocode-slides/references/02-research.md +149 -0
- package/skills/octocode-slides/references/03-outline.md +172 -0
- package/skills/octocode-slides/references/04-design.md +301 -0
- package/skills/octocode-slides/references/05-implementation.md +213 -0
- package/skills/octocode-slides/references/06-review.md +258 -0
- package/skills/octocode-slides/references/animation.md +281 -0
- package/skills/octocode-slides/references/design-system.md +316 -0
- package/skills/octocode-slides/references/html-templates.md +673 -0
- package/skills/octocode-slides/references/image-generation.md +448 -0
- package/skills/octocode-slides/references/resources.md +840 -0
- package/skills/octocode-slides/references/slide-rules.md +541 -0
- package/skills/octocode-slides/references/wireframes.md +727 -0
- package/skills/octocode-slides/scripts/animation.js +182 -0
- package/skills/octocode-slides/scripts/base.css +353 -0
- package/skills/octocode-slides/scripts/base.html +655 -0
- package/skills/octocode-slides/scripts/generate_image.py +221 -0
- package/skills/octocode-slides/scripts/navbridge.js +79 -0
- package/skills/octocode-slides/scripts/presenter.js +316 -0
- package/skills/octocode-slides/scripts/slide.html +248 -0
- package/skills/octocode-stats/SKILL.md +73 -0
- package/skills/octocode-stats/assets/template.html +1332 -0
- package/skills/octocode-stats/scripts/build_dashboard.mjs +407 -0
- package/out/chunks/chunk-LH4AZJPA.js +0 -389
- package/out/chunks/command-help-specs-CQ3RBLP6.js +0 -8
- package/out/chunks/commands-M3QTWKWE.js +0 -51
- package/out/chunks/help-XPXP46ZT.js +0 -10
- package/out/chunks/main-help-HXFAFHPG.js +0 -10
- package/out/chunks/tool-command-VHFLPIHY.js +0 -8
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from './cache.js';
|
|
17
17
|
import { parseArgs } from './cli.js';
|
|
18
18
|
import { loadConfigFile, mergeConfigIntoDefaults } from './config-loader.js';
|
|
19
|
-
import { createOptions
|
|
19
|
+
import { createOptions } from './create-options.js';
|
|
20
20
|
import { attachConsoleFeedback, bus } from './progress.js';
|
|
21
21
|
import { resolveAffectedFiles } from './affected.js';
|
|
22
22
|
import { saveBaseline, filterKnownFindings } from './baseline.js';
|
|
@@ -46,7 +46,6 @@ import {
|
|
|
46
46
|
analyzeSourceFile,
|
|
47
47
|
buildDependencyCriticality,
|
|
48
48
|
} from '../ast/ts-analyzer.js';
|
|
49
|
-
import { isDirectRun } from '../common/is-direct-run.js';
|
|
50
49
|
import { canonicalScriptKind, increment } from '../common/utils.js';
|
|
51
50
|
import { computeHotFiles } from '../detectors/index.js';
|
|
52
51
|
import { runSemanticDetectors } from '../detectors/semantic.js';
|
|
@@ -1249,18 +1248,3 @@ function buildFindingStats(
|
|
|
1249
1248
|
return { overall, pillars };
|
|
1250
1249
|
}
|
|
1251
1250
|
|
|
1252
|
-
if (isDirectRun(import.meta.url)) {
|
|
1253
|
-
main()
|
|
1254
|
-
.then(code => {
|
|
1255
|
-
process.exitCode = code;
|
|
1256
|
-
})
|
|
1257
|
-
.catch((error: unknown) => {
|
|
1258
|
-
if (error instanceof OptionsError) {
|
|
1259
|
-
console.error(error.message);
|
|
1260
|
-
process.exitCode = EXIT_ERROR;
|
|
1261
|
-
} else {
|
|
1262
|
-
console.error(error);
|
|
1263
|
-
process.exitCode = EXIT_ERROR;
|
|
1264
|
-
}
|
|
1265
|
-
});
|
|
1266
|
-
}
|
|
@@ -40,7 +40,11 @@ class ScanBus extends EventEmitter {
|
|
|
40
40
|
|
|
41
41
|
export const bus = new ScanBus();
|
|
42
42
|
|
|
43
|
+
let consoleFeedbackAttached = false;
|
|
44
|
+
|
|
43
45
|
export function attachConsoleFeedback(): void {
|
|
46
|
+
if (consoleFeedbackAttached) return;
|
|
47
|
+
consoleFeedbackAttached = true;
|
|
44
48
|
bus.on('progress', (event: ProgressEvent) => {
|
|
45
49
|
if (event.detail) {
|
|
46
50
|
process.stderr.write(`[${event.phase}] ${event.message}: ${event.detail}\n`);
|
|
@@ -629,6 +629,54 @@ describe('computeQualityAspectRatings', () => {
|
|
|
629
629
|
expect(folderAspect!.score).toBeGreaterThanOrEqual(85);
|
|
630
630
|
});
|
|
631
631
|
|
|
632
|
+
it('penalizes leaf folders that accumulate too many files', () => {
|
|
633
|
+
const result = computeQualityAspectRatings([], {
|
|
634
|
+
fileInventory: [
|
|
635
|
+
...Array.from({ length: 30 }, (_, index) =>
|
|
636
|
+
makeFileEntry({ file: `src/core/module-${index}.ts` })
|
|
637
|
+
),
|
|
638
|
+
...Array.from({ length: 5 }, (_, index) =>
|
|
639
|
+
makeFileEntry({ file: `src/api/route-${index}.ts` })
|
|
640
|
+
),
|
|
641
|
+
],
|
|
642
|
+
});
|
|
643
|
+
|
|
644
|
+
const folderAspect = result.aspects.find(
|
|
645
|
+
aspect => aspect.aspect === 'folder-topology'
|
|
646
|
+
);
|
|
647
|
+
expect(folderAspect).toBeDefined();
|
|
648
|
+
expect(folderAspect!.score).toBeLessThan(85);
|
|
649
|
+
expect(folderAspect!.signals).toContainEqual(
|
|
650
|
+
expect.objectContaining({
|
|
651
|
+
label: 'Bloated folders',
|
|
652
|
+
value: '1/2',
|
|
653
|
+
effect: 'negative',
|
|
654
|
+
})
|
|
655
|
+
);
|
|
656
|
+
});
|
|
657
|
+
|
|
658
|
+
it('includes folder naming consistency in codebase consistency', () => {
|
|
659
|
+
const result = computeQualityAspectRatings([], {
|
|
660
|
+
fileInventory: [
|
|
661
|
+
makeFileEntry({ file: 'src/user-profile/loadUser.ts' }),
|
|
662
|
+
makeFileEntry({ file: 'src/user_profile/saveUser.ts' }),
|
|
663
|
+
makeFileEntry({ file: 'src/UserProfile/listUser.ts' }),
|
|
664
|
+
],
|
|
665
|
+
});
|
|
666
|
+
|
|
667
|
+
const consistencyAspect = result.aspects.find(
|
|
668
|
+
aspect => aspect.aspect === 'codebase-consistency'
|
|
669
|
+
);
|
|
670
|
+
expect(consistencyAspect).toBeDefined();
|
|
671
|
+
expect(consistencyAspect!.signals).toContainEqual(
|
|
672
|
+
expect.objectContaining({
|
|
673
|
+
label: 'Dominant folder naming style',
|
|
674
|
+
value: '33%',
|
|
675
|
+
effect: 'negative',
|
|
676
|
+
})
|
|
677
|
+
);
|
|
678
|
+
});
|
|
679
|
+
|
|
632
680
|
it('ignores generated and minified paths in hybrid quality rating by default', () => {
|
|
633
681
|
const result = computeQualityAspectRatings(
|
|
634
682
|
[
|
|
@@ -703,13 +703,16 @@ export function computeQualityAspectRatings(
|
|
|
703
703
|
);
|
|
704
704
|
const avgDepth = average(depthValues);
|
|
705
705
|
const topLevelCounts = new Map<string, number>();
|
|
706
|
+
const folderCounts = new Map<string, number>();
|
|
706
707
|
const dirSegments = new Set<string>();
|
|
707
708
|
const vagueDirPattern = /^(util|utils|common|shared|misc|helper|helpers|tmp|temp)$/i;
|
|
708
709
|
for (const file of topologyPaths) {
|
|
709
710
|
const normalized = normalizeScanPath(file);
|
|
710
711
|
const parts = normalized.split('/').filter(Boolean);
|
|
711
712
|
const top = parts[0] || '.';
|
|
713
|
+
const folder = parts.length <= 1 ? '.' : parts.slice(0, -1).join('/');
|
|
712
714
|
topLevelCounts.set(top, (topLevelCounts.get(top) || 0) + 1);
|
|
715
|
+
folderCounts.set(folder, (folderCounts.get(folder) || 0) + 1);
|
|
713
716
|
for (const segment of parts.slice(0, -1)) dirSegments.add(segment);
|
|
714
717
|
}
|
|
715
718
|
const dominantRootRatio =
|
|
@@ -721,11 +724,23 @@ export function computeQualityAspectRatings(
|
|
|
721
724
|
? 0
|
|
722
725
|
: [...dirSegments].filter(segment => vagueDirPattern.test(segment)).length
|
|
723
726
|
/ dirSegments.size;
|
|
727
|
+
const maxFolderFileCount =
|
|
728
|
+
folderCounts.size === 0 ? 0 : Math.max(...folderCounts.values());
|
|
729
|
+
const maxFolderShare = maxFolderFileCount / totalFiles;
|
|
730
|
+
const folderBloatPressure =
|
|
731
|
+
maxFolderFileCount < 12 ? 0 : Math.max(0, maxFolderShare - 0.35);
|
|
732
|
+
const bloatedFolderCount = [...folderCounts.values()].filter(
|
|
733
|
+
count => count >= 20 || (count >= 12 && count / totalFiles >= 0.35)
|
|
734
|
+
).length;
|
|
735
|
+
const folderBucketCount = Math.max(1, folderCounts.size);
|
|
736
|
+
const bloatedFolderRatio = bloatedFolderCount / folderBucketCount;
|
|
724
737
|
const folderScore = clampScore(
|
|
725
738
|
100
|
|
726
739
|
- softPenalty(Math.max(0, (avgDepth - 4) / 3), 20, 1.3)
|
|
727
740
|
- softPenalty(Math.max(0, dominantRootRatio - 0.55), 18, 2.0)
|
|
728
741
|
- softPenalty(vagueDirRatio, 24, 2.2)
|
|
742
|
+
- softPenalty(folderBloatPressure, 18, 2.0)
|
|
743
|
+
- softPenalty(bloatedFolderRatio, 14, 1.8)
|
|
729
744
|
);
|
|
730
745
|
aspects.push({
|
|
731
746
|
aspect: 'folder-topology',
|
|
@@ -735,7 +750,7 @@ export function computeQualityAspectRatings(
|
|
|
735
750
|
grade: gradeScore(folderScore),
|
|
736
751
|
confidence: confidenceFromSample(filePaths.length),
|
|
737
752
|
rationale:
|
|
738
|
-
'Rates how navigable the folder model is by blending depth balance, top-level concentration, and reliance on vague utility/common directories.',
|
|
753
|
+
'Rates how navigable the folder model is by blending depth balance, top-level concentration, leaf-folder bloat, and reliance on vague utility/common directories.',
|
|
739
754
|
signals: [
|
|
740
755
|
{
|
|
741
756
|
label: 'Average path depth',
|
|
@@ -752,6 +767,16 @@ export function computeQualityAspectRatings(
|
|
|
752
767
|
value: `${Math.round(vagueDirRatio * 100)}%`,
|
|
753
768
|
effect: vagueDirRatio > 0.2 ? 'negative' : 'neutral',
|
|
754
769
|
},
|
|
770
|
+
{
|
|
771
|
+
label: 'Largest folder file count',
|
|
772
|
+
value: String(maxFolderFileCount),
|
|
773
|
+
effect: maxFolderFileCount >= 20 ? 'negative' : 'neutral',
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
label: 'Bloated folders',
|
|
777
|
+
value: `${bloatedFolderCount}/${folderBucketCount}`,
|
|
778
|
+
effect: bloatedFolderCount > 0 ? 'negative' : 'neutral',
|
|
779
|
+
},
|
|
755
780
|
],
|
|
756
781
|
});
|
|
757
782
|
|
|
@@ -940,14 +965,25 @@ export function computeQualityAspectRatings(
|
|
|
940
965
|
const style = classifyFileNameStyle(baseName);
|
|
941
966
|
styleCounts.set(style, (styleCounts.get(style) || 0) + 1);
|
|
942
967
|
}
|
|
968
|
+
const folderStyleCounts = new Map<string, number>();
|
|
969
|
+
for (const segment of dirSegments) {
|
|
970
|
+
const style = classifyFileNameStyle(segment);
|
|
971
|
+
folderStyleCounts.set(style, (folderStyleCounts.get(style) || 0) + 1);
|
|
972
|
+
}
|
|
943
973
|
const dominantStyleRatio =
|
|
944
974
|
styleCounts.size === 0 ? 1 : Math.max(...styleCounts.values()) / totalFiles;
|
|
975
|
+
const folderSegmentCount = Math.max(1, dirSegments.size);
|
|
976
|
+
const dominantFolderStyleRatio =
|
|
977
|
+
folderStyleCounts.size === 0
|
|
978
|
+
? 1
|
|
979
|
+
: Math.max(...folderStyleCounts.values()) / folderSegmentCount;
|
|
945
980
|
const tsFileCount = filePaths.filter(file => /\.(ts|tsx)$/i.test(file)).length;
|
|
946
981
|
const jsFileCount = filePaths.filter(file => /\.(js|jsx|mjs|cjs)$/i.test(file)).length;
|
|
947
982
|
const mixedExtensionRatio = (Math.min(tsFileCount, jsFileCount) / totalFiles) * 2;
|
|
948
983
|
const consistencyScore = clampScore(
|
|
949
984
|
100
|
|
950
985
|
- softPenalty(1 - dominantStyleRatio, 24, 2.0)
|
|
986
|
+
- softPenalty(1 - dominantFolderStyleRatio, 12, 1.8)
|
|
951
987
|
- softPenalty(mixedExtensionRatio, 12, 1.6)
|
|
952
988
|
- softPenalty(genericFileCount / totalFiles, 10, 1.6)
|
|
953
989
|
);
|
|
@@ -959,13 +995,18 @@ export function computeQualityAspectRatings(
|
|
|
959
995
|
grade: gradeScore(consistencyScore),
|
|
960
996
|
confidence: confidenceFromSample(filePaths.length),
|
|
961
997
|
rationale:
|
|
962
|
-
'Rates naming/structure consistency with soft penalties for mixed
|
|
998
|
+
'Rates naming/structure consistency with soft penalties for mixed file and folder naming styles, mixed TS/JS surface area, and generic file naming concentration.',
|
|
963
999
|
signals: [
|
|
964
1000
|
{
|
|
965
1001
|
label: 'Dominant naming style',
|
|
966
1002
|
value: `${Math.round(dominantStyleRatio * 100)}%`,
|
|
967
1003
|
effect: dominantStyleRatio >= 0.7 ? 'positive' : 'negative',
|
|
968
1004
|
},
|
|
1005
|
+
{
|
|
1006
|
+
label: 'Dominant folder naming style',
|
|
1007
|
+
value: `${Math.round(dominantFolderStyleRatio * 100)}%`,
|
|
1008
|
+
effect: dominantFolderStyleRatio >= 0.7 ? 'positive' : 'negative',
|
|
1009
|
+
},
|
|
969
1010
|
{
|
|
970
1011
|
label: 'TS/JS mix ratio',
|
|
971
1012
|
value: `${Math.round((Math.min(tsFileCount, jsFileCount) / totalFiles) * 100)}%`,
|
|
@@ -306,4 +306,4 @@ Tools responding = setup complete.
|
|
|
306
306
|
| Skills not loading | Verify `~/<client>/skills/<skill>/SKILL.md` has `name` + `description` |
|
|
307
307
|
| Already installed, want to update | Add `--force`: `npx octocode-cli install --ide cursor --force` |
|
|
308
308
|
|
|
309
|
-
Docs: [Auth](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
309
|
+
Docs: [Auth](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/providers/AUTHENTICATION_SETUP.md) · [CLI Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/dev/reference/CLI_REFERENCE.md) · [Skills](https://github.com/bgauryy/octocode-mcp/blob/main/docs/dev/SKILLS_GUIDE.md)
|
|
@@ -36,8 +36,8 @@ npx add-skill https://github.com/bgauryy/octocode-mcp/tree/main/skills/octocode-
|
|
|
36
36
|
|
|
37
37
|
### For PR Mode (Remote Pull Requests)
|
|
38
38
|
|
|
39
|
-
- **Octocode MCP server** running with GitHub
|
|
40
|
-
- See [Authentication Setup](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
39
|
+
- **Octocode MCP server** running with GitHub authentication
|
|
40
|
+
- See [Authentication Setup](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/providers/AUTHENTICATION_SETUP.md)
|
|
41
41
|
|
|
42
42
|
### For Local Mode (Local Changes) — `ENABLE_LOCAL=true`
|
|
43
43
|
|
|
@@ -64,7 +64,7 @@ export ENABLE_LOCAL=true
|
|
|
64
64
|
| **Local Filesystem** | `localSearchCode`, `localViewStructure`, `localFindFiles`, `localGetFileContent` | Search, explore, and read code in your workspace |
|
|
65
65
|
| **LSP Semantic** | `lspGotoDefinition`, `lspFindReferences`, `lspCallHierarchy` | Jump to definitions, find all usages, trace call chains |
|
|
66
66
|
|
|
67
|
-
> **Full documentation:** [Local Tools Reference](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
67
|
+
> **Full documentation:** [Local Tools Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/dev/reference/LOCAL_TOOLS_REFERENCE.md) | [Configuration Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/CONFIGURATION_REFERENCE.md)
|
|
68
68
|
|
|
69
69
|
**Verify it's working:**
|
|
70
70
|
|
|
@@ -237,8 +237,8 @@ Optionally saved to:
|
|
|
237
237
|
| [references/verification-checklist.md](./references/verification-checklist.md) | Full delivery checklist |
|
|
238
238
|
| [references/parallel-agent-protocol.md](./references/parallel-agent-protocol.md) | Multi-agent swarm strategy |
|
|
239
239
|
| [references/output-template.md](./references/output-template.md) | Report format template (PR + Local) |
|
|
240
|
-
| [Local Tools Reference](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
241
|
-
| [Configuration Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/CONFIGURATION_REFERENCE.md) | `ENABLE_LOCAL` and other settings |
|
|
240
|
+
| [Local Tools Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/dev/reference/LOCAL_TOOLS_REFERENCE.md) | Full local + LSP tool documentation |
|
|
241
|
+
| [Configuration Reference](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/CONFIGURATION_REFERENCE.md) | `ENABLE_LOCAL` and other settings |
|
|
242
242
|
|
|
243
243
|
---
|
|
244
244
|
|
|
@@ -104,7 +104,7 @@ Or in the Octocode config file (`local.enabled: true`).
|
|
|
104
104
|
|
|
105
105
|
Set ENABLE_LOCAL=true in your Octocode MCP configuration.
|
|
106
106
|
|
|
107
|
-
See: https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
107
|
+
See: https://github.com/bgauryy/octocode-mcp/blob/main/docs/dev/reference/LOCAL_TOOLS_REFERENCE.md
|
|
108
108
|
|
|
109
109
|
Alternatively, push your changes to a PR and I can review that instead.
|
|
110
110
|
```
|
|
@@ -346,4 +346,4 @@ yarn install
|
|
|
346
346
|
|
|
347
347
|
---
|
|
348
348
|
|
|
349
|
-
*This skill wraps `octocode-mcp` tools as HTTP endpoints. For tool-specific documentation, see the [octocode-mcp package](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
349
|
+
*This skill wraps `octocode-mcp` tools as HTTP endpoints. For tool-specific documentation, see the [octocode-mcp package](https://github.com/bgauryy/octocode-mcp/blob/main/AGENTS.md).*
|
|
@@ -42,7 +42,7 @@ The server is not just a pass-through — it provides a persistent runtime layer
|
|
|
42
42
|
npx add-skill https://github.com/bgauryy/octocode-mcp/tree/main/skills/octocode-research
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
> Requires GitHub auth. See [Authentication Setup](https://github.com/bgauryy/octocode-mcp/blob/main/
|
|
45
|
+
> Requires GitHub auth. See [Authentication Setup](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/providers/AUTHENTICATION_SETUP.md).
|
|
46
46
|
|
|
47
47
|
Or manually:
|
|
48
48
|
|
|
@@ -201,7 +201,7 @@ Collects de-identified telemetry (usage counts, error rates). Never collects sou
|
|
|
201
201
|
| [docs/ARCHITECTURE.md](./docs/ARCHITECTURE.md) | Architecture |
|
|
202
202
|
| [docs/API_REFERENCE.md](./docs/API_REFERENCE.md) | Full API reference |
|
|
203
203
|
| [docs/FLOWS.md](./docs/FLOWS.md) | Request flow diagrams |
|
|
204
|
-
| [Troubleshooting](https://github.com/bgauryy/octocode-mcp/blob/main/docs/TROUBLESHOOTING.md) | Common issues |
|
|
204
|
+
| [Troubleshooting](https://github.com/bgauryy/octocode-mcp/blob/main/docs/configuration/TROUBLESHOOTING.md) | Common issues |
|
|
205
205
|
|
|
206
206
|
---
|
|
207
207
|
|
|
@@ -63,7 +63,7 @@ The `octocode-research` skill is an HTTP API server that provides code research
|
|
|
63
63
|
▼
|
|
64
64
|
┌─────────────────────────────────────────────────────────────────┐
|
|
65
65
|
│ External Systems │
|
|
66
|
-
│ • Local filesystem (ripgrep,
|
|
66
|
+
│ • Local filesystem (bundled ripgrep, fs) │
|
|
67
67
|
│ • GitHub API (via Octokit) │
|
|
68
68
|
│ • NPM Registry API │
|
|
69
69
|
│ • PyPI API │
|