rhachet-roles-ehmpathy 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.test/getContextOpenAI.js +2 -1
- package/dist/.test/getContextOpenAI.js.map +1 -1
- package/dist/contract/commands/codegenBriefOptions.js +1 -0
- package/dist/contract/commands/codegenBriefOptions.js.map +1 -1
- package/dist/contract/sdk/index.d.ts +1 -0
- package/dist/contract/sdk/index.js +6 -0
- package/dist/contract/sdk/index.js.map +1 -0
- package/dist/data/sdk/sdkOpenAi.js +5 -1
- package/dist/data/sdk/sdkOpenAi.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -1
- package/dist/logic/artifact/asDotRhachetFile.d.ts +5 -0
- package/dist/logic/artifact/asDotRhachetFile.js +16 -0
- package/dist/logic/artifact/asDotRhachetFile.js.map +1 -0
- package/dist/logic/artifact/genLoopFeedback.d.ts +18 -0
- package/dist/logic/artifact/genLoopFeedback.js +40 -0
- package/dist/logic/artifact/genLoopFeedback.js.map +1 -0
- package/dist/logic/artifact/genStepArtSet.d.ts +2 -1
- package/dist/logic/artifact/genStepArtSet.js +24 -4
- package/dist/logic/artifact/genStepArtSet.js.map +1 -1
- package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.js +7 -0
- package/dist/logic/artifact/genStepGrabCallerFeedbackToArtifact.js.map +1 -1
- package/dist/logic/artifact/genStepResetFeedback.d.ts +12 -0
- package/dist/logic/artifact/genStepResetFeedback.js +27 -0
- package/dist/logic/artifact/genStepResetFeedback.js.map +1 -0
- package/dist/logic/artifact/genStepSwapArtifact.d.ts +57 -0
- package/dist/logic/artifact/genStepSwapArtifact.js +58 -0
- package/dist/logic/artifact/genStepSwapArtifact.js.map +1 -0
- package/dist/logic/artifact/genStepSwapArtifact.test.js +131 -0
- package/dist/logic/artifact/genStepSwapArtifact.test.js.map +1 -0
- package/dist/logic/roles/architect/.briefs/ubiqlang.ambiguous-from-overload.md +1 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog021.treestruct.md +85 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.definition.md +115 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct._.md +112 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.gravity.md +89 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.1.perspectives.md +88 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.2.universal.md +82 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.3.relative.md +106 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.concept.treestruct.persp.4.fractal.md +83 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p1.definition.md +182 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p1.examples.cont.md +82 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p2.acuity.md +107 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p2.breadth.md +118 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p2.depth.md +121 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p3.mode.md +68 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog101.cortal.focus.p3.rythm.md +56 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog301.concept.traversal.p1.universal.md +108 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog301.concept.traversal.p2.relative.md +76 -0
- package/dist/logic/roles/bhrain/.briefs/cognition/cog301.concept.traversal.p3.directions.md +42 -0
- package/dist/logic/roles/bhrain/.briefs/distilisys.grammar.compressed.md +19 -0
- package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.acuity.md +77 -0
- package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.breadth.md +74 -0
- package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.depth.md +77 -0
- package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.distance.md +92 -0
- package/dist/logic/roles/bhrain/.briefs/physics/optics.focal.tradeoffs.md +107 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/composite/<triangulate>[concept].md +66 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoom>._.md +124 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomin>[acuity]<sharpen>[concept].md +53 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomin>[breadth]<decompose>[concept].md +67 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomin>[depth]<abstractify>[concept].md +124 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomout>[acuity]<blurren>[concept].md +56 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomout>[breadth]<broaden>[concept].md +71 -0
- package/dist/logic/roles/bhrain/.briefs/tactic.<think>[idea]/primitive/<zoomout>[depth]<elaborate>[concept].md +74 -0
- package/dist/logic/roles/bhrain/.briefs/terms.motive.intent.goal.md +46 -0
- package/dist/logic/roles/bhrain/.briefs/trait.ocd.md +5 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.Options.codegen.d.ts +10 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.Options.codegen.js +15 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.Options.codegen.js.map +1 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.d.ts +13 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.js +21 -0
- package/dist/logic/roles/bhrain/getBhrainBrief.js.map +1 -0
- package/dist/logic/roles/bhrain/getBhrainRole.d.ts +2 -0
- package/dist/logic/roles/bhrain/getBhrainRole.js +27 -0
- package/dist/logic/roles/bhrain/getBhrainRole.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.d.ts +51 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.integration.test.js +102 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.js +59 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/cluster/stepCluster.template.md +127 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/collect/stepCollect.d.ts +15 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/collect/stepCollect.integration.test.js +91 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/collect/stepCollect.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/collect/stepCollect.js +33 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/collect/stepCollect.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.d.ts +49 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.integration.test.d.ts +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.integration.test.js +122 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.js +59 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/diverge/stepDiverge.template.md +125 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.d.ts +53 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.integration.test.d.ts +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.integration.test.js +126 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.js +61 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.atomic/envision/stepEnvision.template.md +105 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.d.ts +24 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.integration.test.d.ts +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.integration.test.js +118 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.js +38 -0
- package/dist/logic/roles/bhrain/primitive.idealogic.composite/expand/stepExpand.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.d.ts +45 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.integration.test.d.ts +1 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.integration.test.js +115 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.integration.test.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.js +59 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.skill.d.ts +24 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.skill.js +64 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.skill.js.map +1 -0
- package/dist/logic/roles/bhrain/primitive.strategic.atomic/interpret/stepInterpret.template.md +143 -0
- package/dist/logic/roles/designer/.briefs/declarative-over-imperative.md +79 -0
- package/dist/logic/roles/designer/.briefs/declarative-over-imperative.stub.md +14 -0
- package/dist/logic/roles/designer/.briefs/pit-of-success.md +70 -0
- package/dist/logic/roles/designer/.briefs/pit-of-success.stub.md +3 -0
- package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.js +4 -2
- package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.js.map +1 -1
- package/dist/logic/roles/designer/outlineDistilisys/stepOutlineDistilisys.template.md +173 -0
- package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.js +1 -1
- package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.js.map +1 -1
- package/dist/logic/roles/designer/outlineRoadmap/stepOutlineRoadmap.template.md +88 -0
- package/dist/logic/roles/designer/outlineVision/stepOutlineVision.template.md +47 -0
- package/dist/logic/roles/ecologist/.briefs/.readme.md +17 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys101.distilisys.grammar.md +221 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive._.summary.md +82 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p1.reversibility.entropy.md +39 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p2.option.chance.choice.md +140 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p3.chance.motive.polarity.threat.md +72 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p4.motive.horizon.md +101 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys201.actor.motive.p5.motive.grammar.md +131 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources._.primitives.summary.md +108 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt1.primitive.time.md +56 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt2.primitive.energy.md +69 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt3.primitive.space.md +85 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt4.primitive.claim.md +113 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys211.actor.resources.pt5.composites.md +146 -0
- package/dist/logic/roles/ecologist/.briefs/distilisys/sys231.actor.claims.p1.primitive.exchange.md +130 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/.eco001.origin.prompt.md +11 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco001.overview.md +44 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco101.core-system-understanding.md +70 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p1.ecosystem-structure.md +62 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p2.trophic-dynamics.md +59 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p3.population-ecology.md +71 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco101.p4.community-interactions.md +78 -0
- package/dist/logic/roles/ecologist/.briefs/ecology/eco505.systems-thinking.md +62 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ001.overview.md +65 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ101.core-mechanics.md +65 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ101.p1.supply-and-demand.md +76 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ101.p2.opportunity-cost.md +106 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ101.p3.marginal-analysis.md +79 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ101.p4.rational-choice.md +81 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ201.market-structures-and-failures.md +81 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ301.production-and-growth.md +71 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ401.macro-systems.md +92 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ501.global-and-institutional.md +85 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ501.p1.game-theory.md +142 -0
- package/dist/logic/roles/ecologist/.briefs/economy/econ501.p4.behavioral-economics.md +146 -0
- package/dist/logic/roles/ecologist/.briefs/term.distillation.md +93 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.d.ts +24 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.integration.test.d.ts +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.integration.test.js +57 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.js +11 -0
- package/dist/logic/roles/ecologist/domain.sketch/loopStudyDomain.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/skillStudyDomain.d.ts +25 -0
- package/dist/logic/roles/ecologist/domain.sketch/skillStudyDomain.js +90 -0
- package/dist/logic/roles/ecologist/domain.sketch/skillStudyDomain.js.map +1 -0
- package/dist/logic/roles/ecologist/{distill/distillDomain.ActionsAndActors.d.ts → domain.sketch/stepStudyDomain.d.ts} +8 -3
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.integration.test.d.ts +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.integration.test.js +65 -0
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.js +60 -0
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.sketch/stepStudyDomain.template.md +93 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.d.ts +45 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.integration.test.d.ts +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.integration.test.js +69 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.js +67 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.skill.d.ts +25 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.skill.js +85 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.skill.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepCollectTermUsecases.template.md +160 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.d.ts +47 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.integration.test.d.ts +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.integration.test.js +127 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.js +68 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.skill.d.ts +26 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.skill.js +92 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.skill.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.term/stepDistillTerm.template.md +173 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.d.ts +45 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.integration.test.d.ts +1 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.integration.test.js +69 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.js +67 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.skill.d.ts +25 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.skill.js +85 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.skill.js.map +1 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepCollectUsecases.template.md +160 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepDiscoverUsecases.d.ts +45 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepDiscoverUsecases.js +67 -0
- package/dist/logic/roles/ecologist/domain.usecases/stepDiscoverUsecases.js.map +1 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.d.ts +0 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.integration.test.d.ts +0 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.integration.test.js +78 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.integration.test.js.map +1 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.js +96 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.js.map +1 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.skill.d.ts +0 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.skill.js +72 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.skill.js.map +1 -0
- package/dist/logic/roles/ecologist/envision/stepEnvision.template.md +92 -0
- package/dist/logic/roles/ecologist/getEcologistBrief.Options.codegen.d.ts +1 -1
- package/dist/logic/roles/ecologist/getEcologistBrief.Options.codegen.js +34 -27
- package/dist/logic/roles/ecologist/getEcologistBrief.Options.codegen.js.map +1 -1
- package/dist/logic/roles/ecologist/getEcologistRole.d.ts +2 -0
- package/dist/logic/roles/ecologist/getEcologistRole.js +29 -0
- package/dist/logic/roles/ecologist/getEcologistRole.js.map +1 -0
- package/dist/logic/roles/getRoleRegistry.js +7 -1
- package/dist/logic/roles/getRoleRegistry.js.map +1 -1
- package/dist/logic/roles/mechanic/.briefs/architecture/bounded-contexts.md +61 -0
- package/dist/logic/roles/mechanic/.briefs/architecture/directional-dependencies.md +73 -0
- package/dist/logic/roles/mechanic/.briefs/architecture/domain-driven-design.md +61 -0
- package/dist/logic/roles/mechanic/.briefs/architecture/ubiqlang.md +37 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.md +57 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/_mech.compressed.prompt.md +5 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/flow.failfast.md +37 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/flow.idempotency.md +63 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/flow.immutability.md +48 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/flow.narratives.md +74 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/flow.single-responsibility.md +67 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.args.input-context.md +61 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.arrowonly.md +47 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.clear-contracts.md +53 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.tests.given-when-then.md +62 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.md +88 -0
- package/dist/logic/roles/mechanic/.briefs/codestyle/mech.what-why.v2.md +98 -0
- package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.md +118 -0
- package/dist/logic/roles/mechanic/.briefs/engineer/dependency-injection.stub.md +11 -0
- package/dist/logic/roles/mechanic/.briefs/style.compressed.md +29 -0
- package/dist/logic/roles/mechanic/.briefs/style.compressed.prompt.md +5 -0
- package/dist/logic/roles/mechanic/.briefs/style.names.treestruct.md +48 -0
- package/dist/logic/roles/mechanic/.briefs/style.names.ubiqlang.md +37 -0
- package/dist/logic/roles/mechanic/.briefs/style.words.lowercase.md +36 -0
- package/dist/logic/roles/mechanic/codediff/routeArtistCodeDiff.template.md +46 -0
- package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewArchitecture.template.md +78 -0
- package/dist/logic/roles/mechanic/codediff/routeCriticCodeReviewCodestyle.template.md +75 -0
- package/dist/logic/roles/mechanic/codediff/routeJudgeReleasable.template.md +67 -0
- package/dist/logic/roles/mechanic/getMechanicBrief.Options.codegen.d.ts +1 -1
- package/dist/logic/roles/mechanic/getMechanicBrief.Options.codegen.js +1 -1
- package/dist/logic/roles/mechanic/getMechanicBrief.Options.codegen.js.map +1 -1
- package/dist/logic/roles/mechanic/getMechanicRole.js +3 -137
- package/dist/logic/roles/mechanic/getMechanicRole.js.map +1 -1
- package/dist/logic/roles/mechanic/skills/getSkillCodePropose.d.ts +2 -0
- package/dist/logic/roles/mechanic/skills/getSkillCodePropose.js +140 -0
- package/dist/logic/roles/mechanic/skills/getSkillCodePropose.js.map +1 -0
- package/dist/logic/roles/mechanic/study/routeStudyAsk.template.md +73 -0
- package/dist/logic/roles/mechanic/write/.test/prior.template.md +21 -0
- package/dist/logic/roles/mechanic/write/loopWrite.d.ts +25 -0
- package/dist/logic/roles/mechanic/write/loopWrite.integration.test.d.ts +1 -0
- package/dist/logic/roles/mechanic/write/loopWrite.integration.test.js +57 -0
- package/dist/logic/roles/mechanic/write/loopWrite.integration.test.js.map +1 -0
- package/dist/logic/roles/mechanic/write/loopWrite.js +11 -0
- package/dist/logic/roles/mechanic/write/loopWrite.js.map +1 -0
- package/dist/logic/roles/mechanic/write/loopWrite.skill.d.ts +25 -0
- package/dist/logic/roles/mechanic/write/loopWrite.skill.js +100 -0
- package/dist/logic/roles/mechanic/write/loopWrite.skill.js.map +1 -0
- package/dist/logic/roles/mechanic/write/stepWrite.d.ts +22 -0
- package/dist/logic/roles/mechanic/write/stepWrite.integration.test.d.ts +1 -0
- package/dist/logic/roles/mechanic/write/stepWrite.integration.test.js +189 -0
- package/dist/logic/roles/mechanic/write/stepWrite.integration.test.js.map +1 -0
- package/dist/logic/roles/mechanic/write/stepWrite.js +50 -0
- package/dist/logic/roles/mechanic/write/stepWrite.js.map +1 -0
- package/dist/logic/roles/mechanic/write/stepWrite.template.md +34 -0
- package/package.json +9 -6
- package/readme.md +1 -1
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.d.ts +0 -17
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.integration.test.js +0 -107
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.integration.test.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.js +0 -76
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.imagine.ResourcesAndMechanisms.d.ts +0 -17
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.imagine.ResourcesAndMechanisms.js +0 -73
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.imagine.ResourcesAndMechanisms.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.d.ts +0 -18
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.integration.test.js +0 -73
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.integration.test.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.js +0 -62
- package/dist/logic/roles/ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/distillDomain.ActionsAndActors.integration.test.js +0 -120
- package/dist/logic/roles/ecologist/distill/distillDomain.ActionsAndActors.integration.test.js.map +0 -1
- package/dist/logic/roles/ecologist/distill/distillDomain.ActionsAndActors.js +0 -69
- package/dist/logic/roles/ecologist/distill/distillDomain.ActionsAndActors.js.map +0 -1
- /package/dist/logic/{roles/ecologist/distill/.deprecate/distillDomain.expand.ResourcesAndMechanisms.integration.test.d.ts → artifact/genStepSwapArtifact.test.d.ts} +0 -0
- /package/dist/logic/roles/{ecologist/distill/.deprecate/distillDomain.refine.ResourcesAndMechanisms.integration.test.d.ts → bhrain/primitive.idealogic.atomic/cluster/stepCluster.integration.test.d.ts} +0 -0
- /package/dist/logic/roles/{ecologist/distill/distillDomain.ActionsAndActors.integration.test.d.ts → bhrain/primitive.idealogic.atomic/collect/stepCollect.integration.test.d.ts} +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
## 🧠 `.brief.designer.dependency-injection`
|
|
2
|
+
|
|
3
|
+
### 🧠 topic: dependency injection
|
|
4
|
+
**why we pass in dependencies instead of hardcoding them**
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
### 🎯 goal
|
|
9
|
+
build software that is **flexible, testable, and decoupled**,
|
|
10
|
+
by making dependencies **explicit, swappable, and controlled from the outside**.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
### 🛠 what it is
|
|
15
|
+
|
|
16
|
+
> **dependency injection** = giving a function, class, or module what it needs from the outside,
|
|
17
|
+
> rather than letting it construct or look up those tools internally.
|
|
18
|
+
|
|
19
|
+
for example, instead of having a function reach for its own dependencies:
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
// ❌ tightly coupled and side-effect prone
|
|
23
|
+
import { log } from '@/utils/logger';
|
|
24
|
+
import { getDatabaseConnection } from '@/utils/database';
|
|
25
|
+
|
|
26
|
+
export const upsert = async ({ cost }: { cost: JobLeadCost }) => {
|
|
27
|
+
log.debug('began.upsert', { cost });
|
|
28
|
+
const dbConnection = await getDatabaseConnection();
|
|
29
|
+
const result = await dbConnection.query('SELECT * FROM ...');
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
you inject those dependencies via the standard `(input, context)` pattern:
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
// ✅ dependency injection via context
|
|
37
|
+
export const upsert = async (
|
|
38
|
+
{ cost }: { cost: JobLeadCost },
|
|
39
|
+
context: { dbConnection: DatabaseConnection, log: LogMethods }, // note how the .context pattern cleanly separates inputs from dependencies
|
|
40
|
+
) => {
|
|
41
|
+
context.log.debug("began.upsert", { cost });
|
|
42
|
+
const updated = await context.dbConnection.query('SELECT * FROM ...');
|
|
43
|
+
await emitJobLeadCostSetEvent(result, context); // note how easy it is to reuse dependencies via the context pattern
|
|
44
|
+
return updated;
|
|
45
|
+
};
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
- the function doesn’t reach into globals or construct its own tools
|
|
49
|
+
- everything it needs is **passed in from the outside**, making it testable, predictable, and side-effect free
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
### 🔑 paved pattern: `(input, context)`
|
|
54
|
+
dependency injection is best done by following the **standard procedure contract**:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
export const doThing = async (
|
|
58
|
+
input: SomeInput,
|
|
59
|
+
context: { db: Db; log: Logger } & OtherContext
|
|
60
|
+
) => { ... }
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
- all dependencies go in the `context` argument
|
|
64
|
+
- keeps `input` clean, and `context` flexible
|
|
65
|
+
- enables composition, tracing, and full test control
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 🤝 why it matters
|
|
71
|
+
|
|
72
|
+
- **testability** — swap real dependencies with mocks/fakes
|
|
73
|
+
- **flexibility** — easily change implementations without changing core logic
|
|
74
|
+
- **separation of concerns** — business logic doesn't manage its own plumbing
|
|
75
|
+
- **explicitness** — makes system wiring visible and intentional
|
|
76
|
+
- **reusability** — same logic can be reused with different behaviors
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### 🧱 core principle
|
|
81
|
+
|
|
82
|
+
> **don’t make decisions deep inside the system.**
|
|
83
|
+
> instead, **let the outer layers decide what gets injected**.
|
|
84
|
+
|
|
85
|
+
you keep **policies and tools separate from behaviors**.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### 🔍 mental model
|
|
90
|
+
|
|
91
|
+
> dependency injection is like **plugging in a tool** instead of **building one every time**.
|
|
92
|
+
|
|
93
|
+
your procedures say:
|
|
94
|
+
> “give me what I need — I don’t care where it came from.”
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 🔄 practical benefits
|
|
99
|
+
|
|
100
|
+
| without DI | with DI |
|
|
101
|
+
|----------------------------------------|--------------------------------------------|
|
|
102
|
+
| hardcoded database inside procedures | database passed in as via parameters |
|
|
103
|
+
| requires real API in tests | can inject mock/fake API for testing |
|
|
104
|
+
| logic tied to concrete tools | logic works with any compatible tool |
|
|
105
|
+
| hard to switch infra/tools | swappable with config or environment setup |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### 🧩 final synthesis
|
|
110
|
+
|
|
111
|
+
we inject dependencies to build systems that are easier to **test**, **scale**, and **evolve**.
|
|
112
|
+
|
|
113
|
+
> dependency injection is about building **pure, decoupled, and testable** systems.
|
|
114
|
+
> it eliminates shared state, surfaces side effects, and makes your logic portable and composable.
|
|
115
|
+
> it enables **modularity**, **testability**, and **control**,
|
|
116
|
+
> by making **dependencies external** instead of hidden inside.
|
|
117
|
+
|
|
118
|
+
done right, it's **invisible during use**, and **invaluable during testing, scaling, and evolution**.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
todo: declare why dependency injection leads to a pit of success && why global shared state should be avoided
|
|
2
|
+
|
|
3
|
+
via dependency injection, you always know what's referncing what. no side effects
|
|
4
|
+
|
|
5
|
+
persistance is the only global shared state that should exist - and even that should be managed cautiously (e.g., to avoid race conditions)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
via dependency injection, either via context or input params, you craft safer, easier to test, and more reliable code
|
|
10
|
+
|
|
11
|
+
a significant contributor to the pit-of-success we strive for
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// style:tactics (compressed)
|
|
2
|
+
|
|
3
|
+
- name:ubiqlang
|
|
4
|
+
- use one canonical term per concept (e.g., always use `customer`, never `client`, `user`, or `account`)
|
|
5
|
+
- eliminate overloads: each term must refer to exactly one thing (e.g., do not use `update` for both "save" and "fetch")
|
|
6
|
+
- when introducing a new term:
|
|
7
|
+
- define its interface and role
|
|
8
|
+
- document its meaning clearly
|
|
9
|
+
- ensure consistent usage across code, docs, and tests
|
|
10
|
+
|
|
11
|
+
- name:treestruct
|
|
12
|
+
- for mechanisms (procedures, steps, transforms), use `[Verb][NounHierarchy]` format
|
|
13
|
+
- verb must come first and be atomic (e.g., `gen`, `set`, `get`, `map`, `submit`)
|
|
14
|
+
- examples: `genStepImagineViaTemplate`, `setCustomerPhone`
|
|
15
|
+
- for resources (records, results), use `[NounHierarchy][State]?` format
|
|
16
|
+
- `State` is optional and should clarify the form or phase (e.g., `Found`, `Updated`, `Draft`, `Final`)
|
|
17
|
+
- examples: `contentFound`, `invoiceDraft`, `customer`
|
|
18
|
+
- group nouns by domain to maintain treesorted file and symbol organization
|
|
19
|
+
|
|
20
|
+
- words:lowercase
|
|
21
|
+
- use lowercase for all non-code text (comments, prompts, markdown, logs)
|
|
22
|
+
- never capitalize:
|
|
23
|
+
- the start of a sentence
|
|
24
|
+
- generic nouns (`customer`, `step`)
|
|
25
|
+
- verbs (`set`, `submit`, `handle`)
|
|
26
|
+
- system messages or instructions
|
|
27
|
+
- only capitalize:
|
|
28
|
+
- code symbols (e.g., `StitchStepImagine`, `GitRepo`)
|
|
29
|
+
- proper nouns or brand names (e.g., OpenAI, GitHub)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
.tactic = name:treestruct
|
|
2
|
+
|
|
3
|
+
.what = enforce `[verb][...noun]` for mechanisms and `[...noun][state]?` for resources
|
|
4
|
+
.where:
|
|
5
|
+
- `verb` = exactly one leading verb (e.g., `gen`, `set`, `get`, `map`)
|
|
6
|
+
- `...noun` = hierarchy of nouns reflecting the domain treestruct
|
|
7
|
+
- `state` = optional suffix representing state or outcome (e.g., `Updated`, `Found`, `After`, `Draft`)
|
|
8
|
+
- this tactic applies to all named functions, types, files, folders, and slugs
|
|
9
|
+
|
|
10
|
+
.why:
|
|
11
|
+
- maximizes autocomplete grouping by domain or action
|
|
12
|
+
- enables tree-sorted navigation in IDEs and file explorers
|
|
13
|
+
- avoids ambiguity and naming drift across boundaries (design, dev, product)
|
|
14
|
+
|
|
15
|
+
.how:
|
|
16
|
+
.rules:
|
|
17
|
+
- For **mechanisms** (functions, generators, procedures):
|
|
18
|
+
- use format: `[Verb][...NounHierarchy]`
|
|
19
|
+
- the verb must come **first**, and be **exactly one** action (e.g., `gen`, `set`, `get`, `map`, `submit`)
|
|
20
|
+
- e.g., `genStepImagineViaTemplate`, `setCustomerPhone`, `mapJobQuoteToEstimate`
|
|
21
|
+
- For **resources** (stateful data, outcomes, snapshots):
|
|
22
|
+
- use format: `[...NounHierarchy][State]?`
|
|
23
|
+
- the optional `State` suffix:
|
|
24
|
+
- is used when disambiguating multiple forms (e.g., `InvoiceDraft` vs `InvoiceFinal`)
|
|
25
|
+
- is typically a past participle or state label (e.g., `Found`, `After`, `Draft`)
|
|
26
|
+
- may be omitted if the base noun already implies a single clear meaning
|
|
27
|
+
- e.g., `contentFound`, `customer`, `invoiceDraft`
|
|
28
|
+
|
|
29
|
+
.examples:
|
|
30
|
+
.positive:
|
|
31
|
+
// mechanisms
|
|
32
|
+
- `genStepImagineViaTemplate` // generates a StitchStepImagine from a template
|
|
33
|
+
- `setCustomerPhone` // sets the customer's phone number
|
|
34
|
+
- `mapGitRepoToWorkspace` // maps a Git repo into a workspace domain
|
|
35
|
+
- `getInvoiceFinalizedState` // retrieves the final state of an invoice
|
|
36
|
+
|
|
37
|
+
// resources
|
|
38
|
+
- `contentFound` // content retrieved from a source
|
|
39
|
+
- `customer` // single canonical term for a user of services
|
|
40
|
+
- `invoiceDraft` // invoice in editable state
|
|
41
|
+
- `invoice` // base noun with implicit meaning
|
|
42
|
+
|
|
43
|
+
.negative:
|
|
44
|
+
- `stepImagineGenFromTemplate` // ⛔ wrong order — verb must come first
|
|
45
|
+
- `customerSet` // ⛔ vague mechanism — better as `setCustomer` or `setCustomerPhone`
|
|
46
|
+
- `FoundContent` // ⛔ reversed word order and PascalCase — should be `contentFound`
|
|
47
|
+
- `submitQuoteJob` // ⛔ noun hierarchy flipped — should be `submitJobQuote`
|
|
48
|
+
- `update()` // ⛔ unscoped verb — must include noun domain (e.g., `updateInvoice`)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.tactic = name:ubiqlang
|
|
2
|
+
|
|
3
|
+
.what = enforce a rigorous, domain-driven naming system rooted in ubiquitous language
|
|
4
|
+
.where:
|
|
5
|
+
- ubiquitous language = the shared, unambiguous vocabulary used by both domain experts and developers
|
|
6
|
+
- this tactic applies to all names: types, variables, functions, slugs, and folders
|
|
7
|
+
|
|
8
|
+
.why:
|
|
9
|
+
- eliminates ambiguity and cognitive friction
|
|
10
|
+
- ensures that everyone speaks the same language — in code, UI, tests, and docs
|
|
11
|
+
- prevents synonym drift (e.g., "client" vs "customer") and overload traps (e.g., "update" meaning 3 things)
|
|
12
|
+
|
|
13
|
+
.how:
|
|
14
|
+
- eliminate synonyms
|
|
15
|
+
- choose one canonical word per concept (e.g., always use `customer`, never `client`, `user`, or `account`)
|
|
16
|
+
- eliminate overloads
|
|
17
|
+
- each term must refer to one concept only (e.g., avoid using `update` for both "save data" and "fetch latest")
|
|
18
|
+
- use consistent term stacking across all code (e.g., `customerPhoneUpdate`, not `editPhoneNumber`)
|
|
19
|
+
- whenever a new term is introduced:
|
|
20
|
+
- define its interface, expected shape, and role
|
|
21
|
+
- document its meaning clearly and visibly (ideally in context or hover docs)
|
|
22
|
+
- ensure its usage is verified across type definitions, business rules, and communication flows
|
|
23
|
+
|
|
24
|
+
.examples:
|
|
25
|
+
.positive:
|
|
26
|
+
- `customer` instead of `client`, `user`, or `buyer`
|
|
27
|
+
- `jobQuote` as the single term for estimates/proposals
|
|
28
|
+
- `leadCapture` as the canonical action for inbound lead collection
|
|
29
|
+
- `customerPhoneUpdate` for updating a phone number
|
|
30
|
+
- `invoiceDraft` and `invoiceFinal` for two distinct invoice states
|
|
31
|
+
|
|
32
|
+
.negative:
|
|
33
|
+
- `client`, `user`, `account`, `buyer` all referring to the same actor
|
|
34
|
+
- `editCustomerPhone`, `changePhone`, `updateNumber` used interchangeably
|
|
35
|
+
- `job` used for both a requested service and a completed one
|
|
36
|
+
- `update()` overloaded to mean save, patch, sync, or refresh
|
|
37
|
+
- `quote`, `estimate`, `proposal`, and `bid` all floating without clear hierarchy
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.tactic = words:lowercase
|
|
2
|
+
|
|
3
|
+
.what = enforce lowercase for all words unless capitalization is required by code or naming convention
|
|
4
|
+
.where:
|
|
5
|
+
- applies to comments, docstrings, markdown, logs, and prompt copy
|
|
6
|
+
- only exceptions are code constructs (e.g., class names) and proper nouns (e.g., OpenAI)
|
|
7
|
+
|
|
8
|
+
.why:
|
|
9
|
+
- keeps language neutral, minimal, and machine-aligned
|
|
10
|
+
- prevents inconsistent or performative emphasis via caps
|
|
11
|
+
- improves scanability and reduces visual noise across surfaces
|
|
12
|
+
|
|
13
|
+
.how:
|
|
14
|
+
.rules:
|
|
15
|
+
- do not capitalize the first word of a sentence
|
|
16
|
+
- only use capitalization when:
|
|
17
|
+
- referencing a class, type, or constant (e.g., `StitchStepImagine`, `GitRepo`)
|
|
18
|
+
- writing a proper noun or brand (e.g., OpenAI, GitHub, AWS)
|
|
19
|
+
- never capitalize:
|
|
20
|
+
- generic nouns (`customer`, `invoice`, `step`)
|
|
21
|
+
- verbs (`set`, `get`, `submit`, `handle`)
|
|
22
|
+
- system comments or instructions, even at the beginning of a line
|
|
23
|
+
|
|
24
|
+
.examples:
|
|
25
|
+
.positive:
|
|
26
|
+
- `// returns a new invoice if customer exists`
|
|
27
|
+
- `// handled in gitrepo.init()`
|
|
28
|
+
- `// fallback if no customer was found`
|
|
29
|
+
- `// pass into StitchStepImagine to generate`
|
|
30
|
+
- `// openai prompt requires flattened string`
|
|
31
|
+
.negative:
|
|
32
|
+
- `// Returns a new invoice` // ⛔ capitalized sentence start
|
|
33
|
+
- `// This is handled in GitRepo` // ⛔ capitalized sentence + verb
|
|
34
|
+
- `// Submit the job for approval` // ⛔ capitalized imperative
|
|
35
|
+
- `// Customer must exist first` // ⛔ capitalized domain noun
|
|
36
|
+
- `// GitHub Repository` // ⛔ capitalized generic noun
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
directive
|
|
2
|
+
- <codediff><imagine> the [ask] against the [inflight]
|
|
3
|
+
- input = [inflight], [ask], [claims], [feedback]?
|
|
4
|
+
- output = new [inflight] .ts contents (all thoughts should go in comments, output should be valid typescript); no markdown codeblock, just code
|
|
5
|
+
- write only the production logic and comments required; no demo code unless it's in the jsdoc comment
|
|
6
|
+
|
|
7
|
+
context.role.traits
|
|
8
|
+
- maximally concise; prefer treestructs and outlines; maximize signal, minimize words
|
|
9
|
+
- systematically distill scenes with ubiquitous language
|
|
10
|
+
- uses treestructs and bullet points to maximize signal-to-noise
|
|
11
|
+
- explain .what and .why with comments for each code paragraph // and each code procedure /**
|
|
12
|
+
$.rhachet{inherit.traits}
|
|
13
|
+
|
|
14
|
+
context.role.skills
|
|
15
|
+
$.rhachet{inherit.skills}
|
|
16
|
+
|
|
17
|
+
context.scene
|
|
18
|
+
$.rhachet{scene}
|
|
19
|
+
|
|
20
|
+
directive
|
|
21
|
+
- <codediff><imagine> the [ask] against the [inflight]
|
|
22
|
+
- input = [ask], [claims], [feedback]?
|
|
23
|
+
- output = new [inflight] .ts contents (all thoughts should go in comments, output should be valid typescript); no markdown codeblock, just code
|
|
24
|
+
|
|
25
|
+
--------------------------
|
|
26
|
+
|
|
27
|
+
codestyle rules to enforce:
|
|
28
|
+
$.rhachet{codestyle}
|
|
29
|
+
|
|
30
|
+
--------------------------
|
|
31
|
+
|
|
32
|
+
claims =
|
|
33
|
+
$.rhachet{claims}
|
|
34
|
+
|
|
35
|
+
feedback =
|
|
36
|
+
$.rhachet{feedback}
|
|
37
|
+
|
|
38
|
+
ask =
|
|
39
|
+
$.rhachet{ask}
|
|
40
|
+
|
|
41
|
+
--------------------------
|
|
42
|
+
|
|
43
|
+
inflight =
|
|
44
|
+
```ts
|
|
45
|
+
$.rhachet{inflight}
|
|
46
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
directive
|
|
2
|
+
- <critic><review><architecture> the [subject] focused on architecture violations only
|
|
3
|
+
- input = [subject], [claims]
|
|
4
|
+
- output = json list of suggestions
|
|
5
|
+
- each suggestion must be:
|
|
6
|
+
{
|
|
7
|
+
kind: "blocker" | "nitpick" | "chance" | "praise",
|
|
8
|
+
scope: "technical.architecture",
|
|
9
|
+
what: string,
|
|
10
|
+
why: string,
|
|
11
|
+
where: {
|
|
12
|
+
scope: 'contract' | 'implementation',
|
|
13
|
+
sample: string
|
|
14
|
+
},
|
|
15
|
+
suggestion: {
|
|
16
|
+
before: string,
|
|
17
|
+
after: string,
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
- output should be directly the .json file contents. no markdown or code blocks
|
|
21
|
+
|
|
22
|
+
context.role.traits
|
|
23
|
+
- think like a precise code reviewer
|
|
24
|
+
- optimize for signal, minimize words
|
|
25
|
+
$.rhachet{inherit.traits}
|
|
26
|
+
|
|
27
|
+
context.role.skills
|
|
28
|
+
$.rhachet{inherit.skills}
|
|
29
|
+
|
|
30
|
+
--------------------------
|
|
31
|
+
|
|
32
|
+
architecture rules to enforce:
|
|
33
|
+
```md
|
|
34
|
+
$.rhachet{architecture.rules}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
--------------------------
|
|
38
|
+
|
|
39
|
+
architectural domain relevant:
|
|
40
|
+
|
|
41
|
+
domain.terms established (for ubiqlang)
|
|
42
|
+
```md
|
|
43
|
+
$.rhachet{architecture.domain.terms}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
domain.bounds established (for bounded contexts & separation of concerns)
|
|
47
|
+
```md
|
|
48
|
+
$.rhachet{architecture.domain.bounds}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
--------------------------
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
directive
|
|
55
|
+
- <critic><review><architecture> the [subject] focused on architecture violations only
|
|
56
|
+
- input = [diff], [claims]
|
|
57
|
+
- output = json list of suggestions
|
|
58
|
+
- each suggestion must be:
|
|
59
|
+
{
|
|
60
|
+
kind: "blocker" | "nitpick" | "chance" | "praise",
|
|
61
|
+
scope: "technical.architecture"
|
|
62
|
+
what: string,
|
|
63
|
+
why: string,
|
|
64
|
+
where: {
|
|
65
|
+
scope: 'contract' | 'implementation',
|
|
66
|
+
sample: string
|
|
67
|
+
},
|
|
68
|
+
suggestion: {
|
|
69
|
+
before: string,
|
|
70
|
+
after: string,
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
- output should be directly the .json file contents. no markdown or code blocks
|
|
74
|
+
|
|
75
|
+
--------------------------
|
|
76
|
+
|
|
77
|
+
subject =
|
|
78
|
+
$.rhachet{subject}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
directive
|
|
2
|
+
- <critic><review><codestyle> the [diff] focused on codestyle violations only
|
|
3
|
+
- input = [diff], [claims]
|
|
4
|
+
- output = json list of suggestions
|
|
5
|
+
- each suggestion must be:
|
|
6
|
+
{
|
|
7
|
+
kind: "blocker" | "nitpick" | "chance" | "praise",
|
|
8
|
+
scope: "technical.codestyle",
|
|
9
|
+
what: string,
|
|
10
|
+
why: string,
|
|
11
|
+
where: {
|
|
12
|
+
scope: 'contract' | 'implementation',
|
|
13
|
+
sample: string
|
|
14
|
+
},
|
|
15
|
+
suggestion: {
|
|
16
|
+
before: string,
|
|
17
|
+
after: string,
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
- output should be directly the .json file contents. no markdown or code blocks
|
|
21
|
+
- dont praise satisfaction of expectations; praise only exceptional imagination and nonintuitives
|
|
22
|
+
|
|
23
|
+
important
|
|
24
|
+
- dont cause unnessesary churn. if its a chance for improvement, mark it a chance.
|
|
25
|
+
- only mark clear violations as BLOCKERs
|
|
26
|
+
- if your before/after is not sufficiently different, that probably means its not a blocker
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
context.role.traits
|
|
30
|
+
- think like a precise and pragmatic code reviewer
|
|
31
|
+
- optimize for signal, minimize words
|
|
32
|
+
$.rhachet{inherit.traits}
|
|
33
|
+
|
|
34
|
+
context.role.skills
|
|
35
|
+
$.rhachet{inherit.skills}
|
|
36
|
+
|
|
37
|
+
--------------------------
|
|
38
|
+
|
|
39
|
+
codestyle rules to enforce:
|
|
40
|
+
$.rhachet{codestyle}
|
|
41
|
+
|
|
42
|
+
--------------------------
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
directive
|
|
46
|
+
- <codediff><review> the [diff] focused on codestyle violations only
|
|
47
|
+
- input = [diff], [claims]
|
|
48
|
+
- output = json list of suggestions
|
|
49
|
+
- each suggestion must be:
|
|
50
|
+
{
|
|
51
|
+
kind: "blocker" | "nitpick" | "chance" | "praise",
|
|
52
|
+
scope: "technical.codestyle"
|
|
53
|
+
what: string,
|
|
54
|
+
why: string,
|
|
55
|
+
where: {
|
|
56
|
+
scope: 'contract' | 'implementation',
|
|
57
|
+
sample: string
|
|
58
|
+
},
|
|
59
|
+
suggestion: {
|
|
60
|
+
before: string,
|
|
61
|
+
after: string,
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
- output should be directly the .json file contents. no markdown or code blocks
|
|
65
|
+
- dont praise satisfaction of expectations; praise only exceptional imagination and nonintuitives
|
|
66
|
+
|
|
67
|
+
important
|
|
68
|
+
- dont cause unnessesary churn. if its a chance for improvement, mark it a chance.
|
|
69
|
+
- only mark clear violations as BLOCKERs
|
|
70
|
+
- if your before/after is not sufficiently different, that probably means its not a blocker
|
|
71
|
+
|
|
72
|
+
--------------------------
|
|
73
|
+
|
|
74
|
+
subject =
|
|
75
|
+
$.rhachet{diff}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
directive
|
|
2
|
+
- <codediff><judge> the [diff] for release readiness
|
|
3
|
+
- input = [diff], [claims], [feedback]
|
|
4
|
+
- output must be a plain json object:
|
|
5
|
+
{
|
|
6
|
+
releasable: boolean,
|
|
7
|
+
reason: string,
|
|
8
|
+
blockers: number,
|
|
9
|
+
grade: {
|
|
10
|
+
functional: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
11
|
+
technical: {
|
|
12
|
+
readable: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
13
|
+
consistent: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
14
|
+
maintainable: 'A' | 'B' | 'C' | 'D' | 'F'
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
- output only the json content itself. no ```'s, straight valid json
|
|
19
|
+
|
|
20
|
+
context.role.traits
|
|
21
|
+
- act as final gatekeeper for code releases
|
|
22
|
+
- reject any code with unresolved blockers
|
|
23
|
+
- reason concisely, focus on decision criteria
|
|
24
|
+
- score functional and technical quality separately
|
|
25
|
+
- evaluate technical quality across readability, consistency, maintainability
|
|
26
|
+
|
|
27
|
+
$.rhachet{inherit.traits}
|
|
28
|
+
|
|
29
|
+
context.role.skills
|
|
30
|
+
$.rhachet{inherit.skills}
|
|
31
|
+
|
|
32
|
+
directive
|
|
33
|
+
- <codediff><judge> the [diff]
|
|
34
|
+
- input = [diff], [claims], [feedback]
|
|
35
|
+
- output must be a plain json object:
|
|
36
|
+
{
|
|
37
|
+
releasable: boolean, // false if there are *any* blockers
|
|
38
|
+
reason: string, // short rationale behind the decision
|
|
39
|
+
blockers: number, // count of blocker items in feedback
|
|
40
|
+
grade: {
|
|
41
|
+
functional: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
42
|
+
technical: {
|
|
43
|
+
readable: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
44
|
+
consistent: 'A' | 'B' | 'C' | 'D' | 'F',
|
|
45
|
+
maintainable: 'A' | 'B' | 'C' | 'D' | 'F'
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
- output only the json content itself. no ```'s, straight valid json
|
|
50
|
+
|
|
51
|
+
grading logic:
|
|
52
|
+
- functional: how well the diff aligns with the claims
|
|
53
|
+
- technical.readable: clarity of naming, structure, and documentation
|
|
54
|
+
- technical.consistent: style, format, and adherence to established patterns
|
|
55
|
+
- technical.maintainable: modularity, testability, future-proofing
|
|
56
|
+
- if blockers > 0 → releasable must be false
|
|
57
|
+
|
|
58
|
+
--------------------------
|
|
59
|
+
|
|
60
|
+
claims =
|
|
61
|
+
$.rhachet{claims}
|
|
62
|
+
|
|
63
|
+
diff =
|
|
64
|
+
$.rhachet{diff}
|
|
65
|
+
|
|
66
|
+
feedback =
|
|
67
|
+
$.rhachet{feedback}
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* npx tsx src/contract/commands/codegenBriefOptions.ts
|
|
6
6
|
* ```
|
|
7
7
|
*/
|
|
8
|
-
declare const options: readonly ["style.compressed.md", "style.compressed.prompt.md", "style.names.treestruct.md", "style.names.ubiqlang.md", "style.words.lowercase.md", "architecture/bounded-contexts.md", "architecture/directional-dependencies.md", "architecture/domain-driven-design.md", "architecture/ubiqlang.md", "codestyle/_mech.compressed.md", "codestyle/_mech.compressed.prompt.md", "codestyle/flow.failfast.md", "codestyle/flow.idempotency.md", "codestyle/flow.immutability.md", "codestyle/flow.narratives.md", "codestyle/flow.single-responsibility.md", "codestyle/mech.args.input-context.md", "codestyle/mech.arrowonly.md", "codestyle/mech.clear-contracts.md", "codestyle/mech.tests.given-when-then.md", "codestyle/mech.what-why.md", "codestyle/mech.what-why.v2.md"
|
|
8
|
+
declare const options: readonly ["style.compressed.md", "style.compressed.prompt.md", "style.names.treestruct.md", "style.names.ubiqlang.md", "style.words.lowercase.md", "architecture/bounded-contexts.md", "architecture/directional-dependencies.md", "architecture/domain-driven-design.md", "architecture/ubiqlang.md", "engineer/dependency-injection.md", "codestyle/_mech.compressed.md", "codestyle/_mech.compressed.prompt.md", "codestyle/flow.failfast.md", "codestyle/flow.idempotency.md", "codestyle/flow.immutability.md", "codestyle/flow.narratives.md", "codestyle/flow.single-responsibility.md", "codestyle/mech.args.input-context.md", "codestyle/mech.arrowonly.md", "codestyle/mech.clear-contracts.md", "codestyle/mech.tests.given-when-then.md", "codestyle/mech.what-why.md", "codestyle/mech.what-why.v2.md"];
|
|
9
9
|
export type BriefOptionMechanic = typeof options[number];
|
|
10
10
|
export {};
|
|
@@ -17,6 +17,7 @@ const options = [
|
|
|
17
17
|
'architecture/directional-dependencies.md',
|
|
18
18
|
'architecture/domain-driven-design.md',
|
|
19
19
|
'architecture/ubiqlang.md',
|
|
20
|
+
'engineer/dependency-injection.md',
|
|
20
21
|
'codestyle/_mech.compressed.md',
|
|
21
22
|
'codestyle/_mech.compressed.prompt.md',
|
|
22
23
|
'codestyle/flow.failfast.md',
|
|
@@ -30,6 +31,5 @@ const options = [
|
|
|
30
31
|
'codestyle/mech.tests.given-when-then.md',
|
|
31
32
|
'codestyle/mech.what-why.md',
|
|
32
33
|
'codestyle/mech.what-why.v2.md',
|
|
33
|
-
'engineer/dependency-injection.md',
|
|
34
34
|
];
|
|
35
35
|
//# sourceMappingURL=getMechanicBrief.Options.codegen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMechanicBrief.Options.codegen.js","sourceRoot":"","sources":["../../../../src/logic/roles/mechanic/getMechanicBrief.Options.codegen.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH,MAAM,OAAO,GAAG;IACd,qBAAqB;IACrB,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,kCAAkC;IAClC,0CAA0C;IAC1C,sCAAsC;IACtC,0BAA0B;IAC1B,+BAA+B;IAC/B,sCAAsC;IACtC,4BAA4B;IAC5B,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B;IAC9B,yCAAyC;IACzC,sCAAsC;IACtC,6BAA6B;IAC7B,mCAAmC;IACnC,yCAAyC;IACzC,4BAA4B;IAC5B,+BAA+B;
|
|
1
|
+
{"version":3,"file":"getMechanicBrief.Options.codegen.js","sourceRoot":"","sources":["../../../../src/logic/roles/mechanic/getMechanicBrief.Options.codegen.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH,MAAM,OAAO,GAAG;IACd,qBAAqB;IACrB,4BAA4B;IAC5B,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,kCAAkC;IAClC,0CAA0C;IAC1C,sCAAsC;IACtC,0BAA0B;IAC1B,kCAAkC;IAClC,+BAA+B;IAC/B,sCAAsC;IACtC,4BAA4B;IAC5B,+BAA+B;IAC/B,gCAAgC;IAChC,8BAA8B;IAC9B,yCAAyC;IACzC,sCAAsC;IACtC,6BAA6B;IAC7B,mCAAmC;IACnC,yCAAyC;IACzC,4BAA4B;IAC5B,+BAA+B;CACvB,CAAC"}
|