Skip to content

clutcher/laminar

v0.71.2MIT AND CC-BY-4.0

Reviews code against the three qualities of high-quality code in Laminar Software Design: simple to understand and change, correct in behavior, and fast enough for its purpose. A simplicity finding names the cognitive failure a reader meets, a correctness finding names the missing prevention decision or the missing test, and a performance finding names the waste a known alternative avoids. A coding style skill gives the same book's design directions, each with its reason, for any code that is written or changed.

scripts

  • review
  • scripts/checks/CheckCatalog.mjs
  • scripts/checks/CheckText.mjs
  • scripts/checks/CheckWords.mjs
  • scripts/checks/DesignRelationKinds.mjs
  • scripts/checks/JudgeType.mjs
  • scripts/code/extract/CodeGraphCompletion.mjs
  • scripts/code/extract/ExtractOutput.mjs
  • scripts/code/extract/ExtractStep.mjs
  • scripts/code/extract/abstractions/application/ApplicationDiscovery.mjs
  • 557 more
    • scripts/code/extract/abstractions/application/bundler/BundlerApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/cargo/CargoApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/composer/ComposerApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/dotnet/DotnetApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/generic/ApplicationFolders.mjs
    • scripts/code/extract/abstractions/application/generic/GenericApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/generic/dependencies/BuildFileText.mjs
    • scripts/code/extract/abstractions/application/generic/dependencies/DependencyFiles.mjs
    • scripts/code/extract/abstractions/application/generic/dependencies/DependencyFormats.mjs
    • scripts/code/extract/abstractions/application/generic/dependencies/DependencyLines.mjs
    • scripts/code/extract/abstractions/application/generic/dependencies/RepositoryDependencies.mjs
    • scripts/code/extract/abstractions/application/generic/frameworks/ApplicationFrameworks.mjs
    • scripts/code/extract/abstractions/application/generic/frameworks/FrameworkMarks.mjs
    • scripts/code/extract/abstractions/application/generic/frameworks/FrameworkPresence.mjs
    • scripts/code/extract/abstractions/application/generic/testing/ApplicationTestRunners.mjs
    • scripts/code/extract/abstractions/application/go/GoApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/gradle/GradleApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/index.mjs
    • scripts/code/extract/abstractions/application/maven/MavenApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/mix/MixApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/npm/NpmApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/python/PythonApplicationFinder.mjs
    • scripts/code/extract/abstractions/application/sbt/SbtApplicationFinder.mjs
    • scripts/code/extract/abstractions/class/csharp/CSharpClassFinder.mjs
    • scripts/code/extract/abstractions/class/generic/GenericClassFinder.mjs
    • scripts/code/extract/abstractions/class/generic/GenericClassRelationFinder.mjs
    • scripts/code/extract/abstractions/class/generic/GenericClassRoleFinder.mjs
    • scripts/code/extract/abstractions/class/generic/measures/ClassMeasures.mjs
    • scripts/code/extract/abstractions/class/generic/routes/TypeRoutes.mjs
    • scripts/code/extract/abstractions/class/generic/visibility/PrivateWord.mjs
    • scripts/code/extract/abstractions/class/go/GoClassFinder.mjs
    • scripts/code/extract/abstractions/class/go/GoClassRelationFinder.mjs
    • scripts/code/extract/abstractions/class/graphql/GraphQLClassFinder.mjs
    • scripts/code/extract/abstractions/class/index.mjs
    • scripts/code/extract/abstractions/class/java/JavaClassFinder.mjs
    • scripts/code/extract/abstractions/class/jvm/jakarta/JvmJakartaClassRoleFinder.mjs
    • scripts/code/extract/abstractions/class/jvm/spring/JvmSpringClassRoleFinder.mjs
    • scripts/code/extract/abstractions/class/keytree/KeyTreeClassFinder.mjs
    • scripts/code/extract/abstractions/class/kotlin/KotlinClassFinder.mjs
    • scripts/code/extract/abstractions/class/objc/ObjectiveCClassFinder.mjs
    • scripts/code/extract/abstractions/class/perl/PerlClassFinder.mjs
    • scripts/code/extract/abstractions/class/python/PythonClassFinder.mjs
    • scripts/code/extract/abstractions/class/python/PythonClassRelationFinder.mjs
    • scripts/code/extract/abstractions/class/python/flask/PythonFlaskClassRoleFinder.mjs
    • scripts/code/extract/abstractions/class/rust/RustClassFinder.mjs
    • scripts/code/extract/abstractions/class/scala/ScalaClassFinder.mjs
    • scripts/code/extract/abstractions/class/swift/SwiftClassFinder.mjs
    • scripts/code/extract/abstractions/class/typescript/TypeScriptClassFinder.mjs
    • scripts/code/extract/abstractions/class/typescript/nestjs/TypeScriptNestjsClassRoleFinder.mjs
    • scripts/code/extract/abstractions/method/ada/AdaMethodFinder.mjs
    • scripts/code/extract/abstractions/method/ada/AdaMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/bash/BashMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/cpp/CppMethodFinder.mjs
    • scripts/code/extract/abstractions/method/cpp/CppMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/CSharpMethodFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/CSharpMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/CSharpMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/calls/CSharpCallEffects.mjs
    • scripts/code/extract/abstractions/method/csharp/moq/CSharpMoqMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/mstest/CSharpMstestMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/nsubstitute/CSharpNSubstituteMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/nunit/CSharpNunitMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/csharp/xunit/CSharpXunitMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/dart/DartMethodFinder.mjs
    • scripts/code/extract/abstractions/method/dart/DartMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/elixir/ElixirMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/erlang/ErlangMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/erlang/calls/ErlangCallEffects.mjs
    • scripts/code/extract/abstractions/method/fortran/FortranMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/generic/GenericMethodFinder.mjs
    • scripts/code/extract/abstractions/method/generic/GenericMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/generic/GenericMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/generic/calls/CallReading.mjs
    • scripts/code/extract/abstractions/method/generic/calls/CallScanner.mjs
    • scripts/code/extract/abstractions/method/generic/calls/GenericCallEffects.mjs
    • scripts/code/extract/abstractions/method/generic/calls/InMemoryCalls.mjs
    • scripts/code/extract/abstractions/method/generic/measures/CallArgumentCalls.mjs
    • scripts/code/extract/abstractions/method/generic/measures/CallArgumentFunctions.mjs
    • scripts/code/extract/abstractions/method/generic/measures/CodeWindowIndex.mjs
    • scripts/code/extract/abstractions/method/generic/measures/CodeWindows.mjs
    • scripts/code/extract/abstractions/method/generic/measures/MethodMeasures.mjs
    • scripts/code/extract/abstractions/method/generic/measures/OpenConstructs.mjs
    • scripts/code/extract/abstractions/method/generic/outside/OutboundIo.mjs
    • scripts/code/extract/abstractions/method/generic/outside/OutsideNames.mjs
    • scripts/code/extract/abstractions/method/generic/references/LiteralReferences.mjs
    • scripts/code/extract/abstractions/method/generic/references/NameReferences.mjs
    • scripts/code/extract/abstractions/method/generic/references/QueryReferences.mjs
    • scripts/code/extract/abstractions/method/generic/regions/BodyRegions.mjs
    • scripts/code/extract/abstractions/method/generic/regions/LoopRegions.mjs
    • scripts/code/extract/abstractions/method/generic/regions/OnceGuards.mjs
    • scripts/code/extract/abstractions/method/generic/routes/Route.mjs
    • scripts/code/extract/abstractions/method/generic/signatures/MethodSignatures.mjs
    • scripts/code/extract/abstractions/method/generic/signatures/ParameterLists.mjs
    • scripts/code/extract/abstractions/method/generic/signatures/WrappedHeads.mjs
    • scripts/code/extract/abstractions/method/generic/testing/InlineTests.mjs
    • scripts/code/extract/abstractions/method/generic/testing/TestCodeMarks.mjs
    • scripts/code/extract/abstractions/method/generic/testing/TestFrictionFacts.mjs
    • scripts/code/extract/abstractions/method/generic/testing/TestKinds.mjs
    • scripts/code/extract/abstractions/method/generic/typing/LambdaForms.mjs
    • scripts/code/extract/abstractions/method/generic/typing/ReceiverTyping.mjs
    • scripts/code/extract/abstractions/method/go/GoMethodFinder.mjs
    • scripts/code/extract/abstractions/method/go/GoMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/go/GoMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/go/calls/GoCallEffects.mjs
    • scripts/code/extract/abstractions/method/go/testing/GoTestingMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/graphql/GraphQLMethodFinder.mjs
    • scripts/code/extract/abstractions/method/index.mjs
    • scripts/code/extract/abstractions/method/java/JavaMethodFinder.mjs
    • scripts/code/extract/abstractions/method/java/JavaMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/java/JavaMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/java/calls/JavaCallEffects.mjs
    • scripts/code/extract/abstractions/method/jvm/JvmMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/guava/JvmGuavaMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/jakarta/JvmJakartaMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/junit/JvmJunitMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/mockito/JvmMockitoMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/powermock/JvmPowermockMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/spring/JvmSpringMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/jvm/testng/JvmTestngMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/kotlin/KotlinMethodFinder.mjs
    • scripts/code/extract/abstractions/method/kotlin/KotlinMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/kotlin/calls/KotlinCallEffects.mjs
    • scripts/code/extract/abstractions/method/lua/LuaMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/objc/ObjectiveCMethodFinder.mjs
    • scripts/code/extract/abstractions/method/objc/ObjectiveCMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/pascal/PascalMethodFinder.mjs
    • scripts/code/extract/abstractions/method/pascal/PascalMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/perl/PerlMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/php/PhpMethodFinder.mjs
    • scripts/code/extract/abstractions/method/php/PhpMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/python/PythonMethodFinder.mjs
    • scripts/code/extract/abstractions/method/python/PythonMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/python/PythonMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/calls/PythonCallEffects.mjs
    • scripts/code/extract/abstractions/method/python/fastapi/PythonFastapiMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/flask/PythonFlaskMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/mock/PythonMockMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/pytest-mock/PythonPytestMockMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/pytest/PythonPytestMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/python/unittest/PythonUnittestMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/ruby/RubyMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/ruby/calls/RubyCallEffects.mjs
    • scripts/code/extract/abstractions/method/rust/RustMethodFinder.mjs
    • scripts/code/extract/abstractions/method/rust/RustMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/rust/RustMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/rust/calls/RustCallEffects.mjs
    • scripts/code/extract/abstractions/method/scala/ScalaMethodFinder.mjs
    • scripts/code/extract/abstractions/method/scala/ScalaMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/scala/ScalaMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/scala/calls/ScalaCallEffects.mjs
    • scripts/code/extract/abstractions/method/scheme/SchemeMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/scheme/calls/SchemeCallEffects.mjs
    • scripts/code/extract/abstractions/method/sql/SqlMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/swift/SwiftMethodFinder.mjs
    • scripts/code/extract/abstractions/method/swift/SwiftMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/TypeScriptMethodFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/TypeScriptMethodRelationFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/TypeScriptMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/calls/TypeScriptCallEffects.mjs
    • scripts/code/extract/abstractions/method/typescript/jest/TypeScriptJestMethodFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/jest/TypeScriptJestMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/mocha/TypeScriptMochaMethodFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/mocha/TypeScriptMochaMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/nestjs/TypeScriptNestjsMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/node-test/TypeScriptNodeTestMethodFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/testing/JavaScriptTestCodeMarks.mjs
    • scripts/code/extract/abstractions/method/typescript/vitest/TypeScriptVitestMethodFinder.mjs
    • scripts/code/extract/abstractions/method/typescript/vitest/TypeScriptVitestMethodRoleFinder.mjs
    • scripts/code/extract/abstractions/module/cpp/CppModuleFinder.mjs
    • scripts/code/extract/abstractions/module/csharp/CSharpModuleFinder.mjs
    • scripts/code/extract/abstractions/module/csharp/CSharpModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/generic/GenericModuleFinder.mjs
    • scripts/code/extract/abstractions/module/generic/GenericModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/generic/GenericModuleRoleFinder.mjs
    • scripts/code/extract/abstractions/module/generic/imports/ImportConventions.mjs
    • scripts/code/extract/abstractions/module/generic/imports/ImportNames.mjs
    • scripts/code/extract/abstractions/module/generic/imports/ImportResolution.mjs
    • scripts/code/extract/abstractions/module/generic/imports/NestedImports.mjs
    • scripts/code/extract/abstractions/module/generic/imports/PackageScope.mjs
    • scripts/code/extract/abstractions/module/generic/published/ModuleOpenings.mjs
    • scripts/code/extract/abstractions/module/generic/published/Openings.mjs
    • scripts/code/extract/abstractions/module/generic/reading/FolderPaths.mjs
    • scripts/code/extract/abstractions/module/generic/reading/ModuleFolderFiles.mjs
    • scripts/code/extract/abstractions/module/generic/reading/ModuleReading.mjs
    • scripts/code/extract/abstractions/module/generic/reading/SourceFile.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/GenericHexagonalShapeFinder.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/ModuleShapes.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/ShapeFacts.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/ShapeFamilies.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/ShapeFolderKinds.mjs
    • scripts/code/extract/abstractions/module/generic/shapes/ShapeFolderWords.mjs
    • scripts/code/extract/abstractions/module/go/GoModuleFinder.mjs
    • scripts/code/extract/abstractions/module/go/GoModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/index.mjs
    • scripts/code/extract/abstractions/module/java/JavaModuleFinder.mjs
    • scripts/code/extract/abstractions/module/jvm/JvmModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/jvm/spring-modulith/JvmSpringModulithModuleFinder.mjs
    • scripts/code/extract/abstractions/module/jvm/spring-modulith/JvmSpringModulithModuleRoleFinder.mjs
    • scripts/code/extract/abstractions/module/jvm/spring/JvmSpringModuleFinder.mjs
    • scripts/code/extract/abstractions/module/jvm/spring/JvmSpringModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/kotlin/KotlinModuleFinder.mjs
    • scripts/code/extract/abstractions/module/php/PhpModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/python/PythonModuleFinder.mjs
    • scripts/code/extract/abstractions/module/python/PythonModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/rust/RustModuleFinder.mjs
    • scripts/code/extract/abstractions/module/rust/RustModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/scala/ScalaModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/module/typescript/TypeScriptModuleFinder.mjs
    • scripts/code/extract/abstractions/module/typescript/TypeScriptModuleRelationFinder.mjs
    • scripts/code/extract/abstractions/variable/ada/AdaVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/cpp/CppVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/csharp/CSharpVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/dart/DartVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/generic/GenericVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/generic/GenericVariableRelationFinder.mjs
    • scripts/code/extract/abstractions/variable/generic/fields/FieldForms.mjs
    • scripts/code/extract/abstractions/variable/generic/fields/FieldHeads.mjs
    • scripts/code/extract/abstractions/variable/generic/fields/FieldItems.mjs
    • scripts/code/extract/abstractions/variable/generic/fields/FieldWrites.mjs
    • scripts/code/extract/abstractions/variable/generic/measures/VariableMeasures.mjs
    • scripts/code/extract/abstractions/variable/generic/members/TypeMembers.mjs
    • scripts/code/extract/abstractions/variable/generic/types/DeclaredTypes.mjs
    • scripts/code/extract/abstractions/variable/generic/values/DeclaredValues.mjs
    • scripts/code/extract/abstractions/variable/generic/values/NamedDeclarationForms.mjs
    • scripts/code/extract/abstractions/variable/generic/values/ValueForms.mjs
    • scripts/code/extract/abstractions/variable/go/GoVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/graphql/GraphQLVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/index.mjs
    • scripts/code/extract/abstractions/variable/java/JavaVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/keytree/KeyTreeVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/kotlin/KotlinVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/objc/ObjectiveCVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/pascal/PascalVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/php/PhpVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/python/PythonVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/ruby/RubyVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/rust/RustVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/scala/ScalaVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/swift/SwiftVariableFinder.mjs
    • scripts/code/extract/abstractions/variable/swift/SwiftVariableRelationFinder.mjs
    • scripts/code/extract/abstractions/variable/typescript/TypeScriptVariableFinder.mjs
    • scripts/code/extract/calls/BodilessDeclarations.mjs
    • scripts/code/extract/calls/CallGraph.mjs
    • scripts/code/extract/calls/CallGraphBuilder.mjs
    • scripts/code/extract/calls/CallGraphReading.mjs
    • scripts/code/extract/calls/CallGraphView.mjs
    • scripts/code/extract/calls/CallGraphs.mjs
    • scripts/code/extract/calls/ExitRoles.mjs
    • scripts/code/extract/calls/SourceLayout.mjs
    • scripts/code/extract/calls/resolution/AbstractTypes.mjs
    • scripts/code/extract/calls/resolution/CallResolution.mjs
    • scripts/code/extract/calls/resolution/CallTargets.mjs
    • scripts/code/extract/calls/resolution/DeclarationLookups.mjs
    • scripts/code/extract/calls/resolution/SupertypeWalk.mjs
    • scripts/code/extract/calls/scope/FileLevelContexts.mjs
    • scripts/code/extract/calls/scope/MethodScope.mjs
    • scripts/code/extract/calls/scope/ParameterListText.mjs
    • scripts/code/extract/calls/scope/TypeParametersInScope.mjs
    • scripts/code/extract/finders/AbstractionFinder.mjs
    • scripts/code/extract/finders/FinderContext.mjs
    • scripts/code/extract/finders/FinderRegistry.mjs
    • scripts/code/extract/finders/LanguageStrategies.mjs
    • scripts/code/extract/finders/RelationFinder.mjs
    • scripts/code/extract/finders/RoleFinder.mjs
    • scripts/code/extract/finders/Strategy.mjs
    • scripts/code/extract/finders/StrategyAnswers.mjs
    • scripts/code/extract/kinds/PublicChangeKindReading.mjs
    • scripts/code/extract/tree/AbstractionFacts.mjs
    • scripts/code/extract/tree/AbstractionTree.mjs
    • scripts/code/extract/tree/BoundaryRank.mjs
    • scripts/code/extract/tree/CommentPlacement.mjs
    • scripts/code/extract/tree/ReviewTreeAbstractions.mjs
    • scripts/code/extract/tree/ReviewTreeGraphAbstractions.mjs
    • scripts/code/extract/tree/TestLayout.mjs
    • scripts/code/extract/tree/TestRecognition.mjs
    • scripts/code/extract/walk/AbstractionWalker.mjs
    • scripts/code/extract/walk/FilePlacement.mjs
    • scripts/code/extract/walk/RepositoryWalk.mjs
    • scripts/code/extract/walk/SourceRoles.mjs
    • scripts/code/extract/walk/SourceWalk.mjs
    • scripts/code/extract/walk/WalkedReferenceRecording.mjs
    • scripts/code/extract/walk/WalkedReferenceResolution.mjs
    • scripts/code/graph/CallGraphAbstractions.mjs
    • scripts/code/graph/CodeGraph.mjs
    • scripts/code/graph/Evidence.mjs
    • scripts/code/graph/WalkedReferenceConverter.mjs
    • scripts/code/graph/abstractions/Abstraction.mjs
    • scripts/code/graph/abstractions/Boundary.mjs
    • scripts/code/graph/abstractions/DeclaredAbstractions.mjs
    • scripts/code/graph/abstractions/FileDeclarations.mjs
    • scripts/code/graph/abstractions/Place.mjs
    • scripts/code/graph/abstractions/Role.mjs
    • scripts/code/graph/abstractions/Scale.mjs
    • scripts/code/graph/abstractions/Signature.mjs
    • scripts/code/graph/chains/Chain.mjs
    • scripts/code/graph/chains/ChainWalker.mjs
    • scripts/code/graph/relations/Reference.mjs
    • scripts/code/graph/relations/Relation.mjs
    • scripts/code/index.mjs
    • scripts/code/inputs/change/AbstractionChange.mjs
    • scripts/code/inputs/change/ChangeMarker.mjs
    • scripts/code/inputs/change/ChangeReader.mjs
    • scripts/code/inputs/change/ChangedFileText.mjs
    • scripts/code/inputs/change/ChangedLines.mjs
    • scripts/code/inputs/change/CreatedFolders.mjs
    • scripts/code/inputs/change/DeclarationTags.mjs
    • scripts/code/inputs/change/DiffDrivers.mjs
    • scripts/code/inputs/change/Hunk.mjs
    • scripts/code/inputs/change/KeyTreeChange.mjs
    • scripts/code/inputs/change/MovedFiles.mjs
    • scripts/code/inputs/change/PublicChangeKinds.mjs
    • scripts/code/inputs/change/ReferenceOnlyLines.mjs
    • scripts/code/inputs/change/RenameMap.mjs
    • scripts/code/inputs/change/ReviewedChange.mjs
    • scripts/code/inputs/change/TextAroundTheChange.mjs
    • scripts/code/inputs/change/TrivialHunks.mjs
    • scripts/code/inputs/repository/FileTree.mjs
    • scripts/code/inputs/repository/GitCommands.mjs
    • scripts/code/inputs/repository/RepositoryFileKinds.mjs
    • scripts/code/inputs/repository/RepositoryFiles.mjs
    • scripts/code/inputs/repository/RepositoryText.mjs
    • scripts/code/inputs/repository/TrackedFiles.mjs
    • scripts/code/inputs/repository/index/CachedSourceIndex.mjs
    • scripts/code/inputs/repository/index/FamilyFiles.mjs
    • scripts/code/inputs/repository/index/IndexCache.mjs
    • scripts/code/inputs/repository/index/SourceIndex.mjs
    • scripts/code/inputs/source/Languages.mjs
    • scripts/code/inputs/source/SourceText.mjs
    • scripts/code/inputs/source/TestCode.mjs
    • scripts/code/inputs/source/TestPlacement.mjs
    • scripts/code/inputs/source/declarations/DeclarationHeadReading.mjs
    • scripts/code/inputs/source/declarations/DeclarationSpans.mjs
    • scripts/code/inputs/source/declarations/DiffDriverHeads.mjs
    • scripts/code/inputs/source/declarations/MarkedDeclarations.mjs
    • scripts/code/inputs/source/declarations/SourceHeads.mjs
    • scripts/code/inputs/source/declarations/TypeHolding.mjs
    • scripts/code/inputs/source/drivers/LanguageDriver.mjs
    • scripts/code/inputs/source/drivers/LanguageRegistry.mjs
    • scripts/code/inputs/source/drivers/generic/GenericDriver.mjs
    • scripts/code/inputs/source/drivers/generic/KeyTreeDriver.mjs
    • scripts/code/inputs/source/drivers/generic/ProseDriver.mjs
    • scripts/code/inputs/source/forms/BodyEnds.mjs
    • scripts/code/inputs/source/forms/CommentForms.mjs
    • scripts/code/inputs/source/forms/FunctionNamePatterns.mjs
    • scripts/code/inputs/source/forms/LexicalForms.mjs
    • scripts/code/inputs/source/forms/StringForms.mjs
    • scripts/code/inputs/source/forms/StringReading.mjs
    • scripts/code/inputs/source/keys/KeyPaths.mjs
    • scripts/code/inputs/source/keys/KeyTree.mjs
    • scripts/code/inputs/source/languages/ada/AdaLanguage.mjs
    • scripts/code/inputs/source/languages/bash/BashLanguage.mjs
    • scripts/code/inputs/source/languages/bibtex/BibtexLanguage.mjs
    • scripts/code/inputs/source/languages/cpp/CppLanguage.mjs
    • scripts/code/inputs/source/languages/csharp/CSharpLanguage.mjs
    • scripts/code/inputs/source/languages/css/CssLanguage.mjs
    • scripts/code/inputs/source/languages/dart/DartLanguage.mjs
    • scripts/code/inputs/source/languages/dts/DtsLanguage.mjs
    • scripts/code/inputs/source/languages/elixir/ElixirLanguage.mjs
    • scripts/code/inputs/source/languages/erlang/ErlangLanguage.mjs
    • scripts/code/inputs/source/languages/fortran/FortranLanguage.mjs
    • scripts/code/inputs/source/languages/go/GoLanguage.mjs
    • scripts/code/inputs/source/languages/graphql/GraphQLDriver.mjs
    • scripts/code/inputs/source/languages/graphql/GraphQLLanguage.mjs
    • scripts/code/inputs/source/languages/graphql/GraphQLSourceText.mjs
    • scripts/code/inputs/source/languages/html/HtmlLanguage.mjs
    • scripts/code/inputs/source/languages/java/JavaLanguage.mjs
    • scripts/code/inputs/source/languages/kotlin/KotlinLanguage.mjs
    • scripts/code/inputs/source/languages/lua/LuaLanguage.mjs
    • scripts/code/inputs/source/languages/markdown/MarkdownLanguage.mjs
    • scripts/code/inputs/source/languages/objc/ObjectiveCLanguage.mjs
    • scripts/code/inputs/source/languages/pascal/PascalLanguage.mjs
    • scripts/code/inputs/source/languages/perl/PerlLanguage.mjs
    • scripts/code/inputs/source/languages/php/PhpLanguage.mjs
    • scripts/code/inputs/source/languages/properties/PropertiesKeyLines.mjs
    • scripts/code/inputs/source/languages/properties/PropertiesLanguage.mjs
    • scripts/code/inputs/source/languages/python/PythonLanguage.mjs
    • scripts/code/inputs/source/languages/ruby/RubyLanguage.mjs
    • scripts/code/inputs/source/languages/rust/RustLanguage.mjs
    • scripts/code/inputs/source/languages/scala/ScalaLanguage.mjs
    • scripts/code/inputs/source/languages/scheme/SchemeLanguage.mjs
    • scripts/code/inputs/source/languages/sql/SqlLanguage.mjs
    • scripts/code/inputs/source/languages/swift/SwiftLanguage.mjs
    • scripts/code/inputs/source/languages/tex/TexLanguage.mjs
    • scripts/code/inputs/source/languages/typescript/TypeScriptLanguage.mjs
    • scripts/code/inputs/source/languages/yaml/YamlKeyLines.mjs
    • scripts/code/inputs/source/languages/yaml/YamlLanguage.mjs
    • scripts/code/inputs/source/lines/Annotations.mjs
    • scripts/code/inputs/source/lines/CommentLines.mjs
    • scripts/code/inputs/source/lines/DecisionLines.mjs
    • scripts/code/inputs/source/lines/ImportLines.mjs
    • scripts/code/inputs/source/lines/LineKinds.mjs
    • scripts/code/inputs/source/lines/StatementLines.mjs
    • scripts/code/inputs/source/names/EverydayNames.mjs
    • scripts/code/inputs/source/names/LanguageWords.mjs
    • scripts/code/inputs/source/names/NameStems.mjs
    • scripts/code/inputs/source/names/NameWords.mjs
    • scripts/code/inputs/source/names/NamingConventions.mjs
    • scripts/code/inputs/source/names/QualifiedNames.mjs
    • scripts/code/inputs/source/names/UnspecificNames.mjs
    • scripts/code/inputs/source/text/BlockEnds.mjs
    • scripts/code/inputs/source/text/Brackets.mjs
    • scripts/code/inputs/source/text/CodeLines.mjs
    • scripts/code/inputs/source/text/PatternText.mjs
    • scripts/code/inputs/source/text/QualifierText.mjs
    • scripts/code/inputs/source/text/ShortenedText.mjs
    • scripts/code/inputs/source/text/TextAroundAWord.mjs
    • scripts/code/inputs/source/text/TextLiterals.mjs
    • scripts/code/inputs/source/text/TopLevelText.mjs
    • scripts/code/inputs/source/text/TypeText.mjs
    • scripts/code/inputs/worktree/LastUsedMarker.mjs
    • scripts/code/inputs/worktree/ReviewWorktree.mjs
    • scripts/code/inputs/worktree/ReviewWorktreeSweep.mjs
    • scripts/code/inputs/worktree/WorktreeRegistry.mjs
    • scripts/collections/UnionFind.mjs
    • scripts/collections/groupedLists.mjs
    • scripts/collections/memos.mjs
    • scripts/files/jsonFile.mjs
    • scripts/files/paths.mjs
    • scripts/files/runFile.mjs
    • scripts/files/scriptSources.mjs
    • scripts/files/workflowReturnFile.mjs
    • scripts/review/merge/IoScreenResultWriter.mjs
    • scripts/review/merge/MergeStep.mjs
    • scripts/review/merge/PreparedRun.mjs
    • scripts/review/merge/abstractions/AbstractionOfTheCodeUnderReview.mjs
    • scripts/review/merge/abstractions/AbstractionsAtPlaces.mjs
    • scripts/review/merge/abstractions/CodeUnderReviewPlaces.mjs
    • scripts/review/merge/abstractions/CoveringTests.mjs
    • scripts/review/merge/draft/CodeFormMarker.mjs
    • scripts/review/merge/draft/CoveredPath.mjs
    • scripts/review/merge/draft/DraftItem.mjs
    • scripts/review/merge/draft/DraftLinesText.mjs
    • scripts/review/merge/draft/DraftReport.mjs
    • scripts/review/merge/draft/EntryBoundaryMarker.mjs
    • scripts/review/merge/draft/FixGroup.mjs
    • scripts/review/merge/draft/SamePattern.mjs
    • scripts/review/merge/draft/Sweep.mjs
    • scripts/review/merge/filing/ConfidenceCeilings.mjs
    • scripts/review/merge/filing/Considerations.mjs
    • scripts/review/merge/filing/FallbackUseFold.mjs
    • scripts/review/merge/filing/FiledCheck.mjs
    • scripts/review/merge/filing/ScriptSettled.mjs
    • scripts/review/merge/lines/LineCheck.mjs
    • scripts/review/merge/lines/RepositoryLines.mjs
    • scripts/review/merge/lines/SliceLines.mjs
    • scripts/review/merge/returns/JudgeReturn.mjs
    • scripts/review/merge/returns/PossibleFindings.mjs
    • scripts/review/merge/verify/CalledCodeUnderReview.mjs
    • scripts/review/merge/verify/CoveredPathText.mjs
    • scripts/review/merge/verify/PossibleFindingText.mjs
    • scripts/review/merge/verify/RefuteFileText.mjs
    • scripts/review/merge/verify/RefuterSelection.mjs
    • scripts/review/merge/verify/VerifyFileText.mjs
    • scripts/review/merge/verify/VerifyHandOff.mjs
    • scripts/review/merge/verify/VerifyWaves.mjs
    • scripts/review/prepare/PrepareStep.mjs
    • scripts/review/prepare/abstractions/CodeGraphWalks.mjs
    • scripts/review/prepare/abstractions/OutsideDeclarations.mjs
    • scripts/review/prepare/abstractions/RepositoryAbstractions.mjs
    • scripts/review/prepare/abstractions/ReviewTree.mjs
    • scripts/review/prepare/abstractions/ReviewedFiles.mjs
    • scripts/review/prepare/abstractions/lookups/AbstractionLookup.mjs
    • scripts/review/prepare/abstractions/lookups/FileLines.mjs
    • scripts/review/prepare/abstractions/lookups/MethodParameters.mjs
    • scripts/review/prepare/abstractions/lookups/MethodText.mjs
    • scripts/review/prepare/abstractions/references/MethodCallers.mjs
    • scripts/review/prepare/abstractions/references/ReferenceContext.mjs
    • scripts/review/prepare/abstractions/references/ReferenceLines.mjs
    • scripts/review/prepare/abstractions/references/ReferenceOrder.mjs
    • scripts/review/prepare/abstractions/references/ReferencePlaces.mjs
    • scripts/review/prepare/abstractions/references/ReferenceTargets.mjs
    • scripts/review/prepare/abstractions/slices/CodeSlice.mjs
    • scripts/review/prepare/abstractions/slices/FieldTypeHeads.mjs
    • scripts/review/prepare/abstractions/slices/FolderChildren.mjs
    • scripts/review/prepare/abstractions/slices/ImportersInTheFolder.mjs
    • scripts/review/prepare/abstractions/slices/KeyTreeSlice.mjs
    • scripts/review/prepare/abstractions/slices/SourceRoots.mjs
    • scripts/review/prepare/abstractions/walks/BoundaryPathsWalk.mjs
    • scripts/review/prepare/abstractions/walks/CallChainsWalk.mjs
    • scripts/review/prepare/abstractions/walks/CallWalks.mjs
    • scripts/review/prepare/abstractions/walks/ExitBoundaryReachWalk.mjs
    • scripts/review/prepare/abstractions/walks/InOutOperationsWalk.mjs
    • scripts/review/prepare/abstractions/walks/RebuiltValuesWalk.mjs
    • scripts/review/prepare/abstractions/walks/core/CoreFolders.mjs
    • scripts/review/prepare/abstractions/walks/core/CoreOperationsWalk.mjs
    • scripts/review/prepare/abstractions/walks/decisions/IdentifierUses.mjs
    • scripts/review/prepare/abstractions/walks/decisions/KeyPlaces.mjs
    • scripts/review/prepare/abstractions/walks/decisions/MatchingKeyLines.mjs
    • scripts/review/prepare/abstractions/walks/decisions/MatchingKeyWalk.mjs
    • scripts/review/prepare/abstractions/walks/decisions/NearTwinEvidence.mjs
    • scripts/review/prepare/abstractions/walks/decisions/NearTwinTypeSearch.mjs
    • scripts/review/prepare/abstractions/walks/decisions/SameDecisionWalk.mjs
    • scripts/review/prepare/abstractions/walks/declarations/DeclarationEnclosingTypes.mjs
    • scripts/review/prepare/abstractions/walks/declarations/NamedDeclarationsWalk.mjs
    • scripts/review/prepare/abstractions/walks/declarations/ProductionReadings.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/CodeForms.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/ConditionReading.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/EntryBoundariesWalk.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/EntryBoundaryCallers.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/EntryBoundaryFills.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/FieldReadings.mjs
    • scripts/review/prepare/abstractions/walks/entryBoundaries/SchemaTypes.mjs
    • scripts/review/prepare/abstractions/walks/memberGroups/ClassMemberUses.mjs
    • scripts/review/prepare/abstractions/walks/memberGroups/MemberGroups.mjs
    • scripts/review/prepare/abstractions/walks/memberGroups/MemberGroupsWalk.mjs
    • scripts/review/prepare/abstractions/walks/parameters/CarrierTypeSearch.mjs
    • scripts/review/prepare/abstractions/walks/parameters/FilledTogetherSearch.mjs
    • scripts/review/prepare/abstractions/walks/parameters/ParameterNamesInTheBody.mjs
    • scripts/review/prepare/abstractions/walks/parameters/ParameterReads.mjs
    • scripts/review/prepare/abstractions/walks/parameters/ScopedParameterRelationsWalk.mjs
    • scripts/review/prepare/abstractions/walks/parameters/TwinTypeSearch.mjs
    • scripts/review/prepare/abstractions/walks/parameters/TypeAbstractions.mjs
    • scripts/review/prepare/abstractions/walks/testing/TestFrictionWalk.mjs
    • scripts/review/prepare/abstractions/walks/testing/TestReachWalk.mjs
    • scripts/review/prepare/abstractions/walks/testing/TopClassWiring.mjs
    • scripts/review/prepare/agents/CostPlan.mjs
    • scripts/review/prepare/agents/JudgeWaves.mjs
    • scripts/review/prepare/agents/ScreenBatch.mjs
    • scripts/review/prepare/formats/ChangedLinesText.mjs
    • scripts/review/prepare/formats/CodeUnderReviewIds.mjs
    • scripts/review/prepare/formats/CodeUnderReviewText.mjs
    • scripts/review/prepare/formats/ListFileText.mjs
    • scripts/review/prepare/formats/SliceFormat.mjs
    • scripts/review/prepare/io/IoPaths.mjs
    • scripts/review/prepare/io/IoReachText.mjs
    • scripts/review/prepare/io/IoRuleCache.mjs
    • scripts/review/prepare/io/IoRules.mjs
    • scripts/review/prepare/io/IoSummary.mjs
    • scripts/review/prepare/relations/BoundaryPathCodeUnderReview.mjs
    • scripts/review/prepare/relations/BoundaryPathText.mjs
    • scripts/review/prepare/relations/DesignRelationCodeUnderReview.mjs
    • scripts/review/prepare/relations/DesignRelationText.mjs
    • scripts/review/prepare/relations/EntryBoundaryCodeUnderReview.mjs
    • scripts/review/prepare/relations/EntryBoundaryText.mjs
    • scripts/review/prepare/relations/TestPlanCodeUnderReview.mjs
    • scripts/review/prepare/relations/TestPlanText.mjs
    • scripts/review/prepare/selection/AbstractionTreeWalk.mjs
    • scripts/review/prepare/selection/ReviewFilter.mjs
    • scripts/review/prepare/selection/SectionsByCheck.mjs
    • scripts/review/prepare/selection/TrackSelection.mjs
    • scripts/review/prepare/settled/ScriptFindings.mjs
    • scripts/review/prepare/settled/ScriptSettledForms.mjs
    • scripts/review/render/RenderStep.mjs
    • scripts/review/render/reports/ChangeKindsOfTheReport.mjs
    • scripts/review/render/reports/EvidenceReport.mjs
    • scripts/review/render/reports/ReaderReport.mjs
    • scripts/review/render/reports/SarifReport.mjs
    • scripts/review/render/sections/ChangeSummary.mjs
    • scripts/review/render/sections/IoEndsSection.mjs
    • scripts/review/render/sections/ItemText.mjs
    • scripts/review/render/sections/OwnFindings.mjs
    • scripts/review/render/sections/ReturnedValueText.mjs
    • scripts/review/render/sections/ScopeLine.mjs
    • scripts/review/render/verdicts/SettledFindings.mjs
    • scripts/review/render/verdicts/TestCoveredPaths.mjs
    • scripts/review/render/verdicts/VerifyReturns.mjs
    • scripts/runReview.mjs
plugin.json
name
laminar
version
0.71.2
description
Reviews code against the three qualities of high-quality code in Laminar Software Design: simple to understand and change, correct in behavior, and fast enough for its purpose. A simplicity finding names the cognitive failure a reader meets, a correctness finding names the missing prevention decision or the missing test, and a performance finding names the waste a known alternative avoids. A coding style skill gives the same book's design directions, each with its reason, for any code that is written or changed.
author
Igor Zarvanskyi
license
MIT AND CC-BY-4.0
extensions
com.github.copilot

What else this package ships

These files come with the package and this site does not publish them. They are listed so you know what is there before you install it.

  • 566JavaScript files
  • hooks.json
View on GitHub

Client extensions

Data this package carries for particular clients. The directory lists the clients named and never reads what is addressed to them.

  • com.github.copilotships a directory of files