@codeyam/codeyam-cli 0.1.0-staging.323686 → 0.1.0-staging.4813bf3
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/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +5 -5
- package/analyzer-template/packages/ai/index.ts +7 -1
- package/analyzer-template/packages/ai/package.json +2 -2
- package/analyzer-template/packages/ai/src/lib/analyzeScope.ts +62 -18
- package/analyzer-template/packages/ai/src/lib/astScopes/astScopeAnalyzer.ts +67 -9
- package/analyzer-template/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.ts +10 -17
- package/analyzer-template/packages/ai/src/lib/astScopes/processExpression.ts +409 -50
- package/analyzer-template/packages/ai/src/lib/astScopes/sharedPatterns.ts +28 -0
- package/analyzer-template/packages/ai/src/lib/astScopes/types.ts +21 -6
- package/analyzer-template/packages/ai/src/lib/dataStructure/ScopeDataStructure.ts +992 -249
- package/analyzer-template/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.ts +5 -1
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.ts +16 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.ts +6 -4
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.ts +31 -3
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.ts +37 -15
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.ts +70 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.ts +126 -11
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.ts +179 -0
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.ts +40 -30
- package/analyzer-template/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.ts +367 -96
- package/analyzer-template/packages/ai/src/lib/dataStructureChunking.ts +33 -15
- package/analyzer-template/packages/ai/src/lib/generateEntityDataStructure.ts +58 -3
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarioData.ts +315 -6
- package/analyzer-template/packages/ai/src/lib/generateEntityScenarios.ts +9 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlows.ts +49 -5
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionalEffects.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromConditionals.ts +649 -142
- package/analyzer-template/packages/ai/src/lib/generateExecutionFlowsFromJsxUsages.ts +1 -1
- package/analyzer-template/packages/ai/src/lib/isolateScopes.ts +51 -3
- package/analyzer-template/packages/ai/src/lib/mergeJsonTypeDefinitions.ts +5 -0
- package/analyzer-template/packages/ai/src/lib/mergeStatements.ts +90 -96
- package/analyzer-template/packages/ai/src/lib/promptGenerators/collapseNullableObjects.ts +118 -0
- package/analyzer-template/packages/ai/src/lib/promptGenerators/gatherAttributesMap.ts +10 -7
- package/analyzer-template/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.ts +24 -4
- package/analyzer-template/packages/ai/src/lib/resolvePathToControllable.ts +25 -13
- package/analyzer-template/packages/ai/src/lib/worker/SerializableDataStructure.ts +4 -3
- package/analyzer-template/packages/analyze/index.ts +2 -0
- package/analyzer-template/packages/analyze/src/lib/FileAnalyzer.ts +65 -59
- package/analyzer-template/packages/analyze/src/lib/ProjectAnalyzer.ts +113 -26
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.ts +19 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getAllExports.ts +11 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.ts +8 -0
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.ts +49 -1
- package/analyzer-template/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.ts +89 -9
- package/analyzer-template/packages/analyze/src/lib/files/analyze/analyzeEntities.ts +19 -4
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +4 -2
- package/analyzer-template/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.ts +0 -3
- package/analyzer-template/packages/analyze/src/lib/files/analyzeRemixRoute.ts +4 -5
- package/analyzer-template/packages/analyze/src/lib/files/getImportedExports.ts +14 -12
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/TransformationTracer.ts +1315 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.ts +61 -13
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.ts +37 -0
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateDataStructure.ts +229 -19
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.ts +117 -9
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.ts +459 -39
- package/analyzer-template/packages/analyze/src/lib/files/scenarios/propagateArrayItemSchemas.ts +474 -0
- package/analyzer-template/packages/analyze/src/lib/files/setImportedExports.ts +2 -1
- package/analyzer-template/packages/analyze/src/lib/index.ts +1 -0
- package/analyzer-template/packages/analyze/src/lib/utils/getFileByPath.ts +19 -0
- package/analyzer-template/packages/aws/package.json +1 -1
- package/analyzer-template/packages/database/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/analysisBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/analysisToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/branchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitBranchToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/commitToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/fileToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/db.ts +6 -0
- package/analyzer-template/packages/database/src/lib/kysely/tables/debugReportsTable.ts +1 -1
- package/analyzer-template/packages/database/src/lib/kysely/tables/labsRequestsTable.ts +52 -0
- package/analyzer-template/packages/database/src/lib/projectToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/saveFiles.ts +1 -1
- package/analyzer-template/packages/database/src/lib/scenarioToDb.ts +1 -1
- package/analyzer-template/packages/database/src/lib/userScenarioToDb.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/analysisToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/branchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitBranchToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/commitToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/fileToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts +2 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js +3 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/db.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/debugReportsTable.d.ts +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts +23 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.d.ts.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/analyzer-template/packages/github/dist/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/projectToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/saveFiles.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/scenarioToDb.js.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts +7 -0
- package/analyzer-template/packages/github/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/github/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/github/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/package.json +1 -1
- package/analyzer-template/packages/types/src/types/ProjectMetadata.ts +7 -0
- package/analyzer-template/packages/types/src/types/ScenariosDataStructure.ts +6 -5
- package/analyzer-template/packages/types/src/types/ScopeAnalysis.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts +7 -0
- package/analyzer-template/packages/utils/dist/types/src/types/ProjectMetadata.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts +5 -5
- package/analyzer-template/packages/utils/dist/types/src/types/ScenariosDataStructure.d.ts.map +1 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts +6 -1
- package/analyzer-template/packages/utils/dist/types/src/types/ScopeAnalysis.d.ts.map +1 -1
- package/analyzer-template/project/constructMockCode.ts +90 -10
- package/analyzer-template/project/writeMockDataTsx.ts +181 -8
- package/analyzer-template/project/writeScenarioComponents.ts +60 -12
- package/analyzer-template/project/writeSimpleRoot.ts +21 -11
- package/background/src/lib/local/createLocalAnalyzer.js +1 -1
- package/background/src/lib/local/createLocalAnalyzer.js.map +1 -1
- package/background/src/lib/virtualized/project/constructMockCode.js +75 -4
- package/background/src/lib/virtualized/project/constructMockCode.js.map +1 -1
- package/background/src/lib/virtualized/project/writeMockDataTsx.js +162 -4
- package/background/src/lib/virtualized/project/writeMockDataTsx.js.map +1 -1
- package/background/src/lib/virtualized/project/writeScenarioComponents.js +60 -15
- package/background/src/lib/virtualized/project/writeScenarioComponents.js.map +1 -1
- package/background/src/lib/virtualized/project/writeSimpleRoot.js +21 -11
- package/background/src/lib/virtualized/project/writeSimpleRoot.js.map +1 -1
- package/codeyam-cli/scripts/apply-setup.js +180 -0
- package/codeyam-cli/scripts/apply-setup.js.map +1 -1
- package/codeyam-cli/src/cli.js +2 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/codeyam-cli.js +18 -2
- package/codeyam-cli/src/codeyam-cli.js.map +1 -1
- package/codeyam-cli/src/commands/analyze.js +4 -2
- package/codeyam-cli/src/commands/analyze.js.map +1 -1
- package/codeyam-cli/src/commands/baseline.js +2 -0
- package/codeyam-cli/src/commands/baseline.js.map +1 -1
- package/codeyam-cli/src/commands/debug.js +9 -5
- package/codeyam-cli/src/commands/debug.js.map +1 -1
- package/codeyam-cli/src/commands/default.js +31 -20
- package/codeyam-cli/src/commands/default.js.map +1 -1
- package/codeyam-cli/src/commands/detect-universal-mocks.js +2 -0
- package/codeyam-cli/src/commands/detect-universal-mocks.js.map +1 -1
- package/codeyam-cli/src/commands/init.js +49 -257
- package/codeyam-cli/src/commands/init.js.map +1 -1
- package/codeyam-cli/src/commands/memory.js +17 -26
- package/codeyam-cli/src/commands/memory.js.map +1 -1
- package/codeyam-cli/src/commands/recapture.js +2 -0
- package/codeyam-cli/src/commands/recapture.js.map +1 -1
- package/codeyam-cli/src/commands/setup-sandbox.js +2 -0
- package/codeyam-cli/src/commands/setup-sandbox.js.map +1 -1
- package/codeyam-cli/src/commands/setup-simulations.js +284 -0
- package/codeyam-cli/src/commands/setup-simulations.js.map +1 -0
- package/codeyam-cli/src/commands/test-startup.js +2 -0
- package/codeyam-cli/src/commands/test-startup.js.map +1 -1
- package/codeyam-cli/src/commands/verify.js +14 -2
- package/codeyam-cli/src/commands/verify.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js +128 -86
- package/codeyam-cli/src/utils/__tests__/setupClaudeCodeSettings.test.js.map +1 -1
- package/codeyam-cli/src/utils/analyzer.js +7 -0
- package/codeyam-cli/src/utils/analyzer.js.map +1 -1
- package/codeyam-cli/src/utils/backgroundServer.js +5 -0
- package/codeyam-cli/src/utils/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/utils/generateReport.js +2 -2
- package/codeyam-cli/src/utils/install-skills.js +70 -45
- package/codeyam-cli/src/utils/install-skills.js.map +1 -1
- package/codeyam-cli/src/utils/labsAutoCheck.js +19 -0
- package/codeyam-cli/src/utils/labsAutoCheck.js.map +1 -0
- package/codeyam-cli/src/utils/progress.js +7 -0
- package/codeyam-cli/src/utils/progress.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +4 -0
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/requireSimulations.js +10 -0
- package/codeyam-cli/src/utils/requireSimulations.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js +82 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/confusionDetector.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js +230 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/contextBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js +67 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/assertRules.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js +105 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/captureFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js +34 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/loadCapturedFixture.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js +162 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/runClaude.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js +75 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/helpers/setupTempProject.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js +378 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/integration/ruleReflectionE2E.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js +115 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/promptBuilder.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js +127 -0
- package/codeyam-cli/src/utils/ruleReflection/__tests__/transcriptParser.test.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js +50 -0
- package/codeyam-cli/src/utils/ruleReflection/confusionDetector.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js +116 -0
- package/codeyam-cli/src/utils/ruleReflection/contextBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/index.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js +44 -0
- package/codeyam-cli/src/utils/ruleReflection/promptBuilder.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js +85 -0
- package/codeyam-cli/src/utils/ruleReflection/transcriptParser.js.map +1 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js +5 -0
- package/codeyam-cli/src/utils/ruleReflection/types.js.map +1 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js +293 -0
- package/codeyam-cli/src/utils/rules/__tests__/ruleState.test.js.map +1 -0
- package/codeyam-cli/src/utils/rules/index.js +1 -0
- package/codeyam-cli/src/utils/rules/index.js.map +1 -1
- package/codeyam-cli/src/utils/rules/parser.js +2 -25
- package/codeyam-cli/src/utils/rules/parser.js.map +1 -1
- package/codeyam-cli/src/utils/rules/ruleState.js +150 -0
- package/codeyam-cli/src/utils/rules/ruleState.js.map +1 -0
- package/codeyam-cli/src/utils/rules/staleness.js +16 -11
- package/codeyam-cli/src/utils/rules/staleness.js.map +1 -1
- package/codeyam-cli/src/utils/serverState.js +37 -10
- package/codeyam-cli/src/utils/serverState.js.map +1 -1
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js +21 -44
- package/codeyam-cli/src/utils/setupClaudeCodeSettings.js.map +1 -1
- package/codeyam-cli/src/webserver/app/lib/database.js +15 -3
- package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
- package/codeyam-cli/src/webserver/backgroundServer.js +24 -0
- package/codeyam-cli/src/webserver/backgroundServer.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/CopyButton-CA3JxPb7.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{EntityItem-DsN1wKrm.js → EntityItem-B86KKU7e.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeBadge-DLqD3qNt.js → EntityTypeBadge-B5ctlSYt.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{EntityTypeIcon-Ba2JVPzP.js → EntityTypeIcon-BqY8gDAW.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InlineSpinner-C8lyxW9k.js → InlineSpinner-ClaLpuOo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{InteractivePreview-aht4aafF.js → InteractivePreview-BDhPilK7.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{LibraryFunctionPreview-CVtiBnY5.js → LibraryFunctionPreview-VeqEBv9v.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LoadingDots-B0GLXMsr.js → LoadingDots-Bs7Nn1Jr.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{LogViewer-xgeCVgSM.js → LogViewer-Bm3PmcCz.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ReportIssueModal-OApQuNyq.js → ReportIssueModal-CgMEzchJ.js} +3 -8
- package/codeyam-cli/src/webserver/build/client/assets/{SafeScreenshot-DuDvi0jm.js → SafeScreenshot-Gq3Ocjo6.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{ScenarioViewer-DzccYyI8.js → ScenarioViewer-CBui0id_.js} +2 -2
- package/codeyam-cli/src/webserver/build/client/assets/{TruncatedFilePath-DyFZkK0l.js → TruncatedFilePath-CiwXDxLh.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{_index-BwqWJOgH.js → _index-B3TDXxnk.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{activity.(_tab)-BwavGCpm.js → activity.(_tab)-BtBFH820.js} +6 -11
- package/codeyam-cli/src/webserver/build/client/assets/agent-transcripts-CN61MOMa.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.agent-transcripts-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.labs-unlock-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/api.save-fixture-l0sNRNKZ.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/book-open-PttOB2SF.js +6 -0
- package/codeyam-cli/src/webserver/build/client/assets/{chevron-down-Cx24_aWc.js → chevron-down-TJp6ofnp.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{chunk-EPOLDU6W-CXRTFQ3F.js → chunk-JZWAC4HX-JE9ZIoBl.js} +12 -12
- package/codeyam-cli/src/webserver/build/client/assets/{circle-check-BOARzkeR.js → circle-check-CXhHQYrI.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/copy-6y9ALfGT.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{createLucideIcon-BdhJEx6B.js → createLucideIcon-Ca9fAY46.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{dev.empty-BBnGWYga.js → dev.empty-C0epRiVn.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-BJUiQqZF.js → entity._sha._-BVnB8a9L.js} +10 -10
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha.scenarios._scenarioId.fullscreen-DavjRmOY.js → entity._sha.scenarios._scenarioId.fullscreen-CBoafmVs.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.create-scenario-D1T4TGjf.js → entity._sha_.create-scenario-DGgZjdFg.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entity._sha_.edit._scenarioId-CTBG2mmz.js → entity._sha_.edit._scenarioId-38yPijoD.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{entry.client-CS2cb_eZ.js → entry.client-BSHEfydn.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{fileTableUtils-DMJ7zii9.js → fileTableUtils-DCPhhSMo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{files-CJ6lTdTA.js → files-0N0YJQv7.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{git-CPTZZ-JZ.js → git-DXnyr8uP.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-CKT08Djd.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{index-lzqtyFU8.js → index-CcsFv748.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{index-B1h680n5.js → index-ChN9-fAY.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/labs-BLJ7HxOC.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{loader-circle-B7B9V-bu.js → loader-circle-CTqLEAGU.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-b171b9d3.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/memory-CCQd4aZA.js +78 -0
- package/codeyam-cli/src/webserver/build/client/assets/pause-D6vreykR.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/root-CHhiHoo_.js +62 -0
- package/codeyam-cli/src/webserver/build/client/assets/{search-CxXUmBSd.js → search-B8VUL8nl.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/settings-BejnUJ6R.js +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{simulations-DwFIBT09.js → simulations-CPoAg7Zo.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/terminal-BrCP7uQo.js +11 -0
- package/codeyam-cli/src/webserver/build/client/assets/{triangle-alert-B6LgvRJg.js → triangle-alert-BZz2NjYa.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useCustomSizes-C1v1PQzo.js → useCustomSizes-DNwUduNu.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useLastLogLine-aSv48UbS.js → useLastLogLine-COky1GVF.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useReportContext-DYxHZQuP.js → useReportContext-CpZgwliL.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{useToast-mBRpZPiu.js → useToast-Bv9JFvUO.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{index-DVzYx8PN.js → index-8Fv-lH1-.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-Akn3iYFP.js +257 -0
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/templates/{codeyam:debug.md → codeyam-debug.md} +1 -1
- package/codeyam-cli/templates/codeyam-diagnose.md +481 -0
- package/codeyam-cli/templates/codeyam-memory-hook.sh +19 -20
- package/codeyam-cli/templates/codeyam-memory.md +392 -0
- package/codeyam-cli/templates/codeyam-new-rule.md +13 -0
- package/codeyam-cli/templates/{codeyam:setup.md → codeyam-setup.md} +13 -1
- package/codeyam-cli/templates/{codeyam:sim.md → codeyam-sim.md} +1 -1
- package/codeyam-cli/templates/{codeyam:test.md → codeyam-test.md} +1 -1
- package/codeyam-cli/templates/{codeyam:verify.md → codeyam-verify.md} +1 -1
- package/codeyam-cli/templates/rule-notification-hook.py +56 -0
- package/codeyam-cli/templates/rule-reflection-hook.py +627 -0
- package/codeyam-cli/templates/rules-instructions.md +132 -0
- package/package.json +2 -2
- package/packages/ai/index.js +3 -2
- package/packages/ai/index.js.map +1 -1
- package/packages/ai/src/lib/analyzeScope.js +50 -13
- package/packages/ai/src/lib/analyzeScope.js.map +1 -1
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js +54 -8
- package/packages/ai/src/lib/astScopes/astScopeAnalyzer.js.map +1 -1
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js +10 -14
- package/packages/ai/src/lib/astScopes/patterns/forInStatementHandler.js.map +1 -1
- package/packages/ai/src/lib/astScopes/processExpression.js +317 -44
- package/packages/ai/src/lib/astScopes/processExpression.js.map +1 -1
- package/packages/ai/src/lib/astScopes/sharedPatterns.js +25 -0
- package/packages/ai/src/lib/astScopes/sharedPatterns.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js +763 -171
- package/packages/ai/src/lib/dataStructure/ScopeDataStructure.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js +5 -1
- package/packages/ai/src/lib/dataStructure/equivalencyManagers/frameworks/JavascriptFrameworkManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js +13 -3
- package/packages/ai/src/lib/dataStructure/helpers/BatchSchemaProcessor.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js +6 -4
- package/packages/ai/src/lib/dataStructure/helpers/ScopeTreeManager.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js +33 -3
- package/packages/ai/src/lib/dataStructure/helpers/cleanKnownObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js +36 -11
- package/packages/ai/src/lib/dataStructure/helpers/cleanNonObjectFunctions.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js +63 -0
- package/packages/ai/src/lib/dataStructure/helpers/coerceObjectsToPrimitivesBySchema.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js +113 -11
- package/packages/ai/src/lib/dataStructure/helpers/convertDotNotation.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js +173 -0
- package/packages/ai/src/lib/dataStructure/helpers/convertTypeAnnotationsToValues.js.map +1 -0
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js +37 -20
- package/packages/ai/src/lib/dataStructure/helpers/deduplicateFunctionSchemas.js.map +1 -1
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js +309 -84
- package/packages/ai/src/lib/dataStructure/helpers/fillInSchemaGapsAndUnknowns.js.map +1 -1
- package/packages/ai/src/lib/dataStructureChunking.js +26 -11
- package/packages/ai/src/lib/dataStructureChunking.js.map +1 -1
- package/packages/ai/src/lib/generateEntityDataStructure.js +46 -2
- package/packages/ai/src/lib/generateEntityDataStructure.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarioData.js +227 -4
- package/packages/ai/src/lib/generateEntityScenarioData.js.map +1 -1
- package/packages/ai/src/lib/generateEntityScenarios.js +7 -1
- package/packages/ai/src/lib/generateEntityScenarios.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlows.js +26 -4
- package/packages/ai/src/lib/generateExecutionFlows.js.map +1 -1
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js +447 -80
- package/packages/ai/src/lib/generateExecutionFlowsFromConditionals.js.map +1 -1
- package/packages/ai/src/lib/isolateScopes.js +39 -3
- package/packages/ai/src/lib/isolateScopes.js.map +1 -1
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js +5 -0
- package/packages/ai/src/lib/mergeJsonTypeDefinitions.js.map +1 -1
- package/packages/ai/src/lib/mergeStatements.js +70 -51
- package/packages/ai/src/lib/mergeStatements.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js +97 -0
- package/packages/ai/src/lib/promptGenerators/collapseNullableObjects.js.map +1 -0
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js +10 -4
- package/packages/ai/src/lib/promptGenerators/gatherAttributesMap.js.map +1 -1
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js +17 -2
- package/packages/ai/src/lib/promptGenerators/generateEntityScenarioDataGenerator.js.map +1 -1
- package/packages/ai/src/lib/resolvePathToControllable.js +24 -14
- package/packages/ai/src/lib/resolvePathToControllable.js.map +1 -1
- package/packages/ai/src/lib/worker/SerializableDataStructure.js.map +1 -1
- package/packages/analyze/index.js +1 -0
- package/packages/analyze/index.js.map +1 -1
- package/packages/analyze/src/lib/FileAnalyzer.js +60 -36
- package/packages/analyze/src/lib/FileAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/ProjectAnalyzer.js +96 -26
- package/packages/analyze/src/lib/ProjectAnalyzer.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllDeclaredEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js +14 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllEntityNodes.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getAllExports.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js +6 -0
- package/packages/analyze/src/lib/asts/sourceFiles/getImportsAnalysis.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js +39 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getResolvedModule.js.map +1 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js +2 -1
- package/packages/analyze/src/lib/asts/sourceFiles/getSourceFilesForAllImports.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js +65 -7
- package/packages/analyze/src/lib/files/analyze/analyzeEntities/prepareDataStructures.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js +17 -4
- package/packages/analyze/src/lib/files/analyze/analyzeEntities.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +2 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js +0 -3
- package/packages/analyze/src/lib/files/analyze/validateDependencyAnalyses.js.map +1 -1
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js +3 -2
- package/packages/analyze/src/lib/files/analyzeRemixRoute.js.map +1 -1
- package/packages/analyze/src/lib/files/getImportedExports.js +11 -7
- package/packages/analyze/src/lib/files/getImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js +880 -0
- package/packages/analyze/src/lib/files/scenarios/TransformationTracer.js.map +1 -0
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js +56 -10
- package/packages/analyze/src/lib/files/scenarios/enrichArrayTypesFromChildSignatures.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js +33 -8
- package/packages/analyze/src/lib/files/scenarios/gatherDataForMocks.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js +150 -17
- package/packages/analyze/src/lib/files/scenarios/generateDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js +56 -8
- package/packages/analyze/src/lib/files/scenarios/generateExecutionFlows.js.map +1 -1
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js +399 -31
- package/packages/analyze/src/lib/files/scenarios/mergeInDependentDataStructure.js.map +1 -1
- package/packages/analyze/src/lib/files/setImportedExports.js +2 -1
- package/packages/analyze/src/lib/files/setImportedExports.js.map +1 -1
- package/packages/analyze/src/lib/index.js +1 -0
- package/packages/analyze/src/lib/index.js.map +1 -1
- package/packages/analyze/src/lib/utils/getFileByPath.js +12 -0
- package/packages/analyze/src/lib/utils/getFileByPath.js.map +1 -0
- package/packages/database/src/lib/analysisBranchToDb.js +1 -1
- package/packages/database/src/lib/analysisBranchToDb.js.map +1 -1
- package/packages/database/src/lib/analysisToDb.js +1 -1
- package/packages/database/src/lib/analysisToDb.js.map +1 -1
- package/packages/database/src/lib/branchToDb.js +1 -1
- package/packages/database/src/lib/branchToDb.js.map +1 -1
- package/packages/database/src/lib/commitBranchToDb.js +1 -1
- package/packages/database/src/lib/commitBranchToDb.js.map +1 -1
- package/packages/database/src/lib/commitToDb.js +1 -1
- package/packages/database/src/lib/commitToDb.js.map +1 -1
- package/packages/database/src/lib/fileToDb.js +1 -1
- package/packages/database/src/lib/fileToDb.js.map +1 -1
- package/packages/database/src/lib/kysely/db.js +3 -0
- package/packages/database/src/lib/kysely/db.js.map +1 -1
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js +35 -0
- package/packages/database/src/lib/kysely/tables/labsRequestsTable.js.map +1 -0
- package/packages/database/src/lib/projectToDb.js +1 -1
- package/packages/database/src/lib/projectToDb.js.map +1 -1
- package/packages/database/src/lib/saveFiles.js +1 -1
- package/packages/database/src/lib/saveFiles.js.map +1 -1
- package/packages/database/src/lib/scenarioToDb.js +1 -1
- package/packages/database/src/lib/scenarioToDb.js.map +1 -1
- package/scripts/finalize-analyzer.cjs +8 -76
- package/codeyam-cli/src/webserver/build/client/assets/copy-Bb-80kDT.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/file-code-Dhef1kWN.js +0 -6
- package/codeyam-cli/src/webserver/build/client/assets/globals-D3yhhV8x.css +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/manifest-7522edd4.js +0 -1
- package/codeyam-cli/src/webserver/build/client/assets/memory-yxFcrxBX.js +0 -92
- package/codeyam-cli/src/webserver/build/client/assets/root-eVAaavTS.js +0 -62
- package/codeyam-cli/src/webserver/build/client/assets/settings-CS5f3WzT.js +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/server-build-4Cr0uToj.js +0 -257
- package/codeyam-cli/templates/codeyam:diagnose.md +0 -803
- package/codeyam-cli/templates/codeyam:memory.md +0 -462
- package/codeyam-cli/templates/codeyam:new-rule.md +0 -13
|
@@ -1,462 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: codeyam:memory
|
|
3
|
-
autoApprove: true
|
|
4
|
-
description: |
|
|
5
|
-
Generate and maintain Claude Rules for your codebase based on thorough analysis.
|
|
6
|
-
Use when: User wants to set up memory, claude rules, document confusing areas,
|
|
7
|
-
or ensure Claude has proper context for working in the codebase.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# CodeYam Memory Assistant
|
|
11
|
-
|
|
12
|
-
This skill helps you generate and maintain Claude Rules (`.claude/rules/`) that provide context-specific guidance. The goal is robust coverage of anything confusing while avoiding documentation of things Claude can intuit.
|
|
13
|
-
|
|
14
|
-
## When to Use This Skill
|
|
15
|
-
|
|
16
|
-
- Initial setup: User asks to "set up memory" or "generate claude rules"
|
|
17
|
-
- Maintenance: After completing complex work where lessons should be preserved
|
|
18
|
-
- Review: Periodically to ensure rules are accurate and up-to-date
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Phase 1: Setup (First Run Only)
|
|
23
|
-
|
|
24
|
-
Check if this is the first time running memory.
|
|
25
|
-
|
|
26
|
-
### 1A. Add Documentation Section to CLAUDE.md
|
|
27
|
-
|
|
28
|
-
If CLAUDE.md doesn't contain a "When Confused / With Mistakes" section, add close to the top:
|
|
29
|
-
|
|
30
|
-
```markdown
|
|
31
|
-
## When Confused / With Mistakes: Stop. Ask. Document.
|
|
32
|
-
|
|
33
|
-
- If you are not sure about something stop and ask about it.
|
|
34
|
-
- If you attempt something and it goes wrong then you are confused. Stop and ask about it.
|
|
35
|
-
- If the user is unable to help. Do your best to research.
|
|
36
|
-
- Then document the findings!
|
|
37
|
-
|
|
38
|
-
### Documenting Confusion / Mistakes
|
|
39
|
-
|
|
40
|
-
It is very important to document any confusion or mistakes you encounter in Claude Rules (`.claude/rules`).
|
|
41
|
-
Please see `.codeyam/rules/instructions.md` for guidance.
|
|
42
|
-
|
|
43
|
-
After making any code changes please run `codeyam memory status` and follow the instructions.
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 1B. Create Instructions File
|
|
47
|
-
|
|
48
|
-
Create `.codeyam/rules/instructions.md` with the content from the Instructions File section at the end of this document.
|
|
49
|
-
|
|
50
|
-
### 1C. Install Pre-commit Hook
|
|
51
|
-
|
|
52
|
-
Check if the project uses Husky (`.husky/` directory exists).
|
|
53
|
-
|
|
54
|
-
**If using Husky**, append to `.husky/pre-commit`:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
# CodeYam Memory Up-To-Date Check
|
|
58
|
-
if [ -f ".codeyam/bin/memory-hook.sh" ]; then
|
|
59
|
-
.codeyam/bin/memory-hook.sh
|
|
60
|
-
fi
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
**If not using Husky**, create or append to `.git/hooks/pre-commit`.
|
|
64
|
-
|
|
65
|
-
Ensure `.codeyam/bin/memory-hook.sh` exists and is executable (`chmod +x`).
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Phase 2: Deep Codebase Analysis
|
|
70
|
-
|
|
71
|
-
Perform thorough analysis to identify areas that may be confusing. The goal is to find everything that might trip up someone (or Claude) working in this codebase.
|
|
72
|
-
|
|
73
|
-
### 2A. Analyze Git Commit Messages for Problem Signals
|
|
74
|
-
|
|
75
|
-
Look for commits indicating gotchas, workarounds, or complexity:
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
# Find commits with problem-indicating keywords
|
|
79
|
-
git log --oneline --since="6 months ago" --grep="fix" --grep="bug" --grep="workaround" --grep="hack" --grep="revert" --grep="oops" --grep="forgot" --grep="actually" --all-match | head -30
|
|
80
|
-
|
|
81
|
-
# Find commits with long messages (indicate complex changes)
|
|
82
|
-
git log --since="6 months ago" --format="%h %s" | awk 'length($0) > 80' | head -20
|
|
83
|
-
|
|
84
|
-
# Find reverted commits
|
|
85
|
-
git log --oneline --since="6 months ago" --grep="revert" -i | head -10
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
For interesting commits, examine the full message and changes:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
git show <commit-hash> --stat
|
|
92
|
-
git log -1 --format="%B" <commit-hash>
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 2B. Identify Files with High Churn or Complexity Signals
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# Files changed most frequently (last 6 months)
|
|
99
|
-
git log --since="6 months ago" --name-only --pretty=format: | sort | uniq -c | sort -rn | head -30
|
|
100
|
-
|
|
101
|
-
# Files with many different authors (tribal knowledge risk)
|
|
102
|
-
git shortlog -sn --since="6 months ago" -- . | head -20
|
|
103
|
-
|
|
104
|
-
# Files frequently modified together (hidden dependencies)
|
|
105
|
-
git log --since="6 months ago" --name-only --pretty=format: | awk '/^$/{if(NR>1)print "---"}; /./{print}' | head -100
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Look for patterns where the same 2-3 files appear together repeatedly.
|
|
109
|
-
|
|
110
|
-
### 2C. Scan for Developer Notes in Code
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
# Find TODO, FIXME, HACK, XXX, NOTE comments
|
|
114
|
-
grep -rn "TODO\|FIXME\|HACK\|XXX\|NOTE:" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" --include="*.py" --include="*.rb" --include="*.go" --include="*.java" --include="*.rs" . 2>/dev/null | head -50
|
|
115
|
-
|
|
116
|
-
# Find "workaround" or "hack" mentions in comments
|
|
117
|
-
grep -rni "workaround\|hack\|temporary\|legacy" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.jsx" --include="*.py" . 2>/dev/null | head -30
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
### 2D. Analyze Project Structure
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
# Get directory structure (2 levels deep)
|
|
124
|
-
find . -type d -maxdepth 3 | grep -v node_modules | grep -v .git | grep -v dist | grep -v build | head -50
|
|
125
|
-
|
|
126
|
-
# Find config files
|
|
127
|
-
find . -name "*.config.*" -o -name "*.rc" -o -name ".env*" -o -name "tsconfig*" -o -name "package.json" 2>/dev/null | grep -v node_modules | head -30
|
|
128
|
-
|
|
129
|
-
# Find test directories
|
|
130
|
-
find . -type d -name "*test*" -o -type d -name "*spec*" -o -type d -name "__tests__" 2>/dev/null | grep -v node_modules | head -20
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
### 2E. Check for Environment and Configuration Complexity
|
|
134
|
-
|
|
135
|
-
```bash
|
|
136
|
-
# Find environment variable references
|
|
137
|
-
grep -rn "process.env\|os.environ\|ENV\[" --include="*.ts" --include="*.tsx" --include="*.js" --include="*.py" . 2>/dev/null | head -30
|
|
138
|
-
|
|
139
|
-
# Find multiple config files that might conflict or confuse
|
|
140
|
-
ls -la *.config.* .*.rc tsconfig*.json 2>/dev/null
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### 2F. Review Existing Documentation
|
|
144
|
-
|
|
145
|
-
Read these files if they exist:
|
|
146
|
-
|
|
147
|
-
- `README.md`
|
|
148
|
-
- `CLAUDE.md`
|
|
149
|
-
- `CONTRIBUTING.md`
|
|
150
|
-
- `docs/` directory
|
|
151
|
-
- Any `*.md` files in the root
|
|
152
|
-
|
|
153
|
-
Note what's already documented and what gaps exist.
|
|
154
|
-
|
|
155
|
-
### 2G. Examine Import/Dependency Patterns
|
|
156
|
-
|
|
157
|
-
```bash
|
|
158
|
-
# Find files with many imports (high coupling)
|
|
159
|
-
for f in $(find . -name "*.ts" -o -name "*.tsx" -o -name "*.js" 2>/dev/null | grep -v node_modules | head -100); do
|
|
160
|
-
count=$(grep -c "^import\|^from\|require(" "$f" 2>/dev/null || echo 0)
|
|
161
|
-
if [ "$count" -gt 15 ]; then
|
|
162
|
-
echo "$count $f"
|
|
163
|
-
fi
|
|
164
|
-
done | sort -rn | head -20
|
|
165
|
-
|
|
166
|
-
# Find commonly imported local modules (core utilities)
|
|
167
|
-
grep -rh "from '\.\|from \"\.\|require('\.\|require(\"\." --include="*.ts" --include="*.tsx" --include="*.js" . 2>/dev/null | sort | uniq -c | sort -rn | head -20
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
---
|
|
171
|
-
|
|
172
|
-
## Phase 3: Cluster and Prioritize Findings
|
|
173
|
-
|
|
174
|
-
After gathering signals, organize them by area/module:
|
|
175
|
-
|
|
176
|
-
1. **Group findings by directory** - Which parts of the codebase have the most signals?
|
|
177
|
-
2. **Identify themes**:
|
|
178
|
-
- Architecture patterns (how things connect)
|
|
179
|
-
- Testing complexity (special setup needed)
|
|
180
|
-
- Configuration/environment gotchas
|
|
181
|
-
- Historical workarounds still in place
|
|
182
|
-
- Non-obvious conventions
|
|
183
|
-
|
|
184
|
-
3. **Score areas** - More signals = higher priority for documentation
|
|
185
|
-
|
|
186
|
-
Create a mental map of:
|
|
187
|
-
|
|
188
|
-
- Which directories/modules are most complex?
|
|
189
|
-
- What relationships exist between different parts?
|
|
190
|
-
- Where are the gotchas hiding?
|
|
191
|
-
|
|
192
|
-
---
|
|
193
|
-
|
|
194
|
-
## Phase 4: Ask Specific Questions
|
|
195
|
-
|
|
196
|
-
Based on your analysis, ask the user specific questions about the actual findings. Reference the concrete evidence you found (file names, commit messages, code patterns) and ask about the substance.
|
|
197
|
-
|
|
198
|
-
Always include "I'm not sure - please investigate" as an option so users can delegate investigation to you.
|
|
199
|
-
|
|
200
|
-
### Question Format
|
|
201
|
-
|
|
202
|
-
Ask about the **specific finding**, not the file generally:
|
|
203
|
-
|
|
204
|
-
**For high-churn files with concerning commits:**
|
|
205
|
-
|
|
206
|
-
> "ScopeDataStructure.ts has commits mentioning 'exponential blowup' and 'execution flows'. What causes this blowup? When does it happen?"
|
|
207
|
-
>
|
|
208
|
-
> Options: [Explain the cause] [I'm not sure - please investigate]
|
|
209
|
-
|
|
210
|
-
**For files frequently modified together:**
|
|
211
|
-
|
|
212
|
-
> "`src/api/auth.ts` and `src/middleware/session.ts` are modified together in 12 commits. Why do these need to change together?"
|
|
213
|
-
>
|
|
214
|
-
> Options: [Explain the relationship] [I'm not sure - please investigate]
|
|
215
|
-
|
|
216
|
-
**For commits with workaround language:**
|
|
217
|
-
|
|
218
|
-
> "Commit `abc123` says 'workaround for webpack issue'. What's the underlying issue and what's the workaround?"
|
|
219
|
-
>
|
|
220
|
-
> Options: [Explain] [I'm not sure - please investigate]
|
|
221
|
-
|
|
222
|
-
**For multiple config files:**
|
|
223
|
-
|
|
224
|
-
> "There are 3 tsconfig files. When is each one used?"
|
|
225
|
-
>
|
|
226
|
-
> Options: [Explain usage] [I'm not sure - please investigate]
|
|
227
|
-
|
|
228
|
-
**For TODO/FIXME comments:**
|
|
229
|
-
|
|
230
|
-
> "There's a FIXME in `src/parser.ts:142` about 'handle nested callbacks'. What's the issue with nested callbacks here?"
|
|
231
|
-
>
|
|
232
|
-
> Options: [Explain] [I'm not sure - please investigate]
|
|
233
|
-
|
|
234
|
-
**For test organization:**
|
|
235
|
-
|
|
236
|
-
> "Tests are split between `__tests__/` folders and colocated `*.test.ts` files. When should each approach be used?"
|
|
237
|
-
>
|
|
238
|
-
> Options: [Explain convention] [I'm not sure - please investigate]
|
|
239
|
-
|
|
240
|
-
### Process
|
|
241
|
-
|
|
242
|
-
1. Group related questions by area/module
|
|
243
|
-
2. Ask 2-3 questions at a time, wait for answers
|
|
244
|
-
3. If user says "I'm not sure - please investigate":
|
|
245
|
-
- Read the relevant code, commits, and context yourself
|
|
246
|
-
- Analyze the patterns and behavior
|
|
247
|
-
- Document your findings based on what you discover
|
|
248
|
-
4. Move to next area after capturing answers
|
|
249
|
-
|
|
250
|
-
---
|
|
251
|
-
|
|
252
|
-
## Phase 5: Generate Rules
|
|
253
|
-
|
|
254
|
-
For each area where you have enough information, create a rule file.
|
|
255
|
-
|
|
256
|
-
### Rule File Guidelines:
|
|
257
|
-
|
|
258
|
-
1. **Location mirrors code structure**
|
|
259
|
-
- Rule for `src/api/` → `.claude/rules/src/api/architecture.md`
|
|
260
|
-
- Rule for testing patterns → `.claude/rules/testing-patterns.md`
|
|
261
|
-
|
|
262
|
-
2. **Paths must be specific**
|
|
263
|
-
- Good: `paths: ['src/api/**/*.ts']`
|
|
264
|
-
- Bad: `paths: ['**/*.ts']` (too broad, wastes context)
|
|
265
|
-
|
|
266
|
-
3. **Content should be actionable**
|
|
267
|
-
- Focus on "how to" and "what to know"
|
|
268
|
-
- Avoid warnings unless truly critical
|
|
269
|
-
- Be concise - every word costs context
|
|
270
|
-
|
|
271
|
-
4. **Timestamp must be current**
|
|
272
|
-
- Use ISO 8601 format: `2026-01-27T15:30:00Z`
|
|
273
|
-
- This enables the pre-commit hook enforcement
|
|
274
|
-
|
|
275
|
-
### Rule Template:
|
|
276
|
-
|
|
277
|
-
```markdown
|
|
278
|
-
---
|
|
279
|
-
paths:
|
|
280
|
-
- 'specific/path/**/*.ts'
|
|
281
|
-
category: architecture | testing | faq
|
|
282
|
-
timestamp: [CURRENT_ISO_TIMESTAMP]
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## [Clear, Descriptive Title]
|
|
286
|
-
|
|
287
|
-
[Concise explanation of what this covers]
|
|
288
|
-
|
|
289
|
-
### [Section as appropriate]
|
|
290
|
-
|
|
291
|
-
[Specific, actionable content]
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
---
|
|
295
|
-
|
|
296
|
-
## Phase 6: Final Review
|
|
297
|
-
|
|
298
|
-
After generating rules based on your analysis and user answers:
|
|
299
|
-
|
|
300
|
-
1. **Present a summary** of all rules created
|
|
301
|
-
2. **Ask the user:**
|
|
302
|
-
|
|
303
|
-
> "I've created rules covering [list areas]. Are there any other areas of the codebase that you know are confusing or have tribal knowledge that I might have missed?"
|
|
304
|
-
|
|
305
|
-
3. **Generate any additional rules** based on their response
|
|
306
|
-
|
|
307
|
-
4. **Suggest viewing rules in the dashboard:**
|
|
308
|
-
|
|
309
|
-
> "Run `codeyam` to open the dashboard and view all rules in the Rules tab."
|
|
310
|
-
|
|
311
|
-
5. **Remind the user** to commit the new rules:
|
|
312
|
-
```
|
|
313
|
-
git add .claude/rules/ .codeyam/rules/
|
|
314
|
-
git commit -m "Add rules for Claude Code (generated via /codeyam:memory)"
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
---
|
|
318
|
-
|
|
319
|
-
## Ongoing Maintenance
|
|
320
|
-
|
|
321
|
-
### When Claude Should Update Rules
|
|
322
|
-
|
|
323
|
-
- After fixing a bug that revealed a gotcha
|
|
324
|
-
- After making an architectural decision
|
|
325
|
-
- When code patterns change
|
|
326
|
-
- When asking "why does this work this way?" and learning the answer
|
|
327
|
-
- When receiving clarification from the user about any confusion
|
|
328
|
-
|
|
329
|
-
### Pre-commit Hook Behavior
|
|
330
|
-
|
|
331
|
-
The pre-commit hook **blocks commits** when:
|
|
332
|
-
|
|
333
|
-
- Code files matching a rule's `paths` are modified
|
|
334
|
-
- The rule's `timestamp` is older than the code changes
|
|
335
|
-
|
|
336
|
-
To proceed:
|
|
337
|
-
|
|
338
|
-
1. Review the flagged rule(s)
|
|
339
|
-
2. Update content if needed
|
|
340
|
-
3. Update the `timestamp` to current time
|
|
341
|
-
4. Stage and commit
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## Instructions File Content
|
|
346
|
-
|
|
347
|
-
Create `.codeyam/rules/instructions.md` with this content:
|
|
348
|
-
|
|
349
|
-
```markdown
|
|
350
|
-
# Memory Guide
|
|
351
|
-
|
|
352
|
-
## Maintaining Rules
|
|
353
|
-
|
|
354
|
-
- It is your responsibility to maintain all rules
|
|
355
|
-
- Rules should be concise and to the point. We want to be very conscientious about abusing the context window with too much text.
|
|
356
|
-
- Use bullets and tables to communicate information efficiently
|
|
357
|
-
- Review relevant rules after every code change using `codeyam memory status`
|
|
358
|
-
- Constantly seek to improve rules. They will ensure every future coding session is more effective!
|
|
359
|
-
|
|
360
|
-
## Editing Rules
|
|
361
|
-
|
|
362
|
-
We focus on three categories of documentation:
|
|
363
|
-
|
|
364
|
-
1. Architecture
|
|
365
|
-
|
|
366
|
-
- Any time there is a specific relationship between files please capture the architecture
|
|
367
|
-
- Note how the files relate, how data flows, and how changes should be approached
|
|
368
|
-
|
|
369
|
-
2. Testing
|
|
370
|
-
|
|
371
|
-
- For complex areas of the app where both manual and automated testing is complex track:
|
|
372
|
-
- Helpful commands used in debugging and testing
|
|
373
|
-
- Where test files are located if it is not obvious (and the command to run them if not obvious)
|
|
374
|
-
|
|
375
|
-
3. FAQ
|
|
376
|
-
|
|
377
|
-
- If you are ever confused about something that does not fit into the above categories document it here.
|
|
378
|
-
- Anything you have to figure out or ask the user about should be captured here.
|
|
379
|
-
|
|
380
|
-
**Please do not add to rules that are serving a different purpose. Create a new rule.**
|
|
381
|
-
|
|
382
|
-
- Rules should be short and concise. Look for opportunities to improve them.
|
|
383
|
-
- Use bullets and tables to communicate information efficiently.
|
|
384
|
-
- Break up rules and create new rules if they are getting too long or are discussin different topics.
|
|
385
|
-
|
|
386
|
-
## Creating a New Rule
|
|
387
|
-
|
|
388
|
-
1. **Ask the user** If not obvious ask the user what they want to document (architecture, testing pattern, or gotcha/FAQ)
|
|
389
|
-
2. **Read the relevant source files** to understand the patterns
|
|
390
|
-
3. **Ask clarifying questions** if anything is unclear
|
|
391
|
-
4. **Determine the file location** - rules mirror the source code structure (see below)
|
|
392
|
-
5. **Create the rule file** with proper YAML frontmatter and concise content
|
|
393
|
-
6. **Remind the user** to commit the rule and suggest running `codeyam` to view it in the dashboard
|
|
394
|
-
|
|
395
|
-
## File Locations
|
|
396
|
-
|
|
397
|
-
Rules mirror the source code structure:
|
|
398
|
-
|
|
399
|
-
| Source Path | Rule Path |
|
|
400
|
-
| -------------------- | ----------------------------------------- |
|
|
401
|
-
| `src/api/auth.ts` | `.claude/rules/src/api/auth.md` |
|
|
402
|
-
| `src/utils/**` | `.claude/rules/src/utils/architecture.md` |
|
|
403
|
-
| Project-wide testing | `.claude/rules/testing-patterns.md` |
|
|
404
|
-
|
|
405
|
-
## YAML Frontmatter (Required)
|
|
406
|
-
|
|
407
|
-
Every rule file MUST have this structure:
|
|
408
|
-
|
|
409
|
-
## \`\`\`yaml
|
|
410
|
-
|
|
411
|
-
paths:
|
|
412
|
-
|
|
413
|
-
- 'specific/path/\*_/_.ts'
|
|
414
|
-
- 'another/path/\*.tsx'
|
|
415
|
-
category: architecture | testing | faq
|
|
416
|
-
timestamp: 2026-01-27T15:30:00Z
|
|
417
|
-
|
|
418
|
-
---
|
|
419
|
-
|
|
420
|
-
\`\`\`
|
|
421
|
-
|
|
422
|
-
### Fields
|
|
423
|
-
|
|
424
|
-
| Field | Required | Description |
|
|
425
|
-
| ----------- | -------- | ---------------------------------------------------- |
|
|
426
|
-
| `paths` | Yes | Glob patterns - be specific to avoid wasting context |
|
|
427
|
-
| `category` | Yes | `architecture`, `testing`, or `faq` |
|
|
428
|
-
| `timestamp` | Yes | ISO 8601 - must update when reviewing rule |
|
|
429
|
-
|
|
430
|
-
### Timestamp Enforcement
|
|
431
|
-
|
|
432
|
-
The pre-commit hook blocks commits when:
|
|
433
|
-
|
|
434
|
-
- You modify files matching a rule's `paths`
|
|
435
|
-
- The rule's `timestamp` is older than your changes
|
|
436
|
-
|
|
437
|
-
To proceed: review the rule, update timestamp, commit.
|
|
438
|
-
|
|
439
|
-
## Content Guidelines
|
|
440
|
-
|
|
441
|
-
### Be Specific and Actionable
|
|
442
|
-
|
|
443
|
-
- Good: "Run `pnpm test:api` for API tests, `pnpm test:ui` for component tests"
|
|
444
|
-
- Bad: "Make sure to run the appropriate tests"
|
|
445
|
-
|
|
446
|
-
### Be Concise
|
|
447
|
-
|
|
448
|
-
Every word costs context window space. Trim aggressively.
|
|
449
|
-
|
|
450
|
-
### Focus on Positive Instructions
|
|
451
|
-
|
|
452
|
-
- Good: "Auth tokens are stored in httpOnly cookies managed by `src/auth/cookies.ts`"
|
|
453
|
-
- Bad: "WARNING: Don't store tokens in localStorage!"
|
|
454
|
-
|
|
455
|
-
## Categories
|
|
456
|
-
|
|
457
|
-
**architecture** - Design decisions, file relationships, data flow, "why X is done this way"
|
|
458
|
-
|
|
459
|
-
**testing** - Test commands, mock patterns, fixtures, "how to test X"
|
|
460
|
-
|
|
461
|
-
**faq** - Gotchas, workarounds, common questions, "if you see X, do Y"
|
|
462
|
-
```
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: codeyam:new-rule
|
|
3
|
-
autoApprove: true
|
|
4
|
-
description: |
|
|
5
|
-
Create a new Claude Rule for documenting codebase patterns.
|
|
6
|
-
Use when: User wants to add documentation for a specific area of the codebase.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Create New Claude Rule
|
|
10
|
-
|
|
11
|
-
Read `.codeyam/rules/instructions.md` for guidance on how to create and structure a new rule.
|
|
12
|
-
|
|
13
|
-
If the instructions file doesn't exist, inform the user they should run `/codeyam:memory` first to set up the rules system.
|