@sayoriqwq/effect-harness 0.0.4 → 0.1.1

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.
Files changed (105) hide show
  1. package/README.md +9 -77
  2. package/diagnostics/effect-routes.md +6 -0
  3. package/diagnostics/index.md +10 -0
  4. package/diagnostics/tsgo-routes.md +5 -0
  5. package/dist/src/eslint.d.ts +57 -0
  6. package/dist/src/eslint.js +42 -0
  7. package/dist/src/eslint.js.map +1 -0
  8. package/dist/src/index.d.ts +2 -0
  9. package/dist/src/index.js +3 -0
  10. package/dist/src/index.js.map +1 -0
  11. package/dist/src/prelude.d.ts +6 -0
  12. package/dist/src/prelude.js +161 -0
  13. package/dist/src/prelude.js.map +1 -0
  14. package/package.json +25 -17
  15. package/prelude-assets/effect/managed/docs/diagnostics.md +6 -0
  16. package/prelude-assets/effect/managed/docs/editor-policy.md +5 -0
  17. package/prelude-assets/effect/managed/docs/effect-code.md +5 -0
  18. package/prelude-assets/effect/managed/docs/index.md +14 -0
  19. package/prelude-assets/effect/managed/docs/managed-surfaces.md +5 -0
  20. package/prelude-assets/effect/managed/docs/package-config.md +20 -0
  21. package/prelude-assets/effect/managed/docs/quality-policy.md +5 -0
  22. package/prelude-assets/effect/managed/docs/source-identity.md +5 -0
  23. package/prelude-assets/guidance/eslint.md +15 -0
  24. package/repos/effect.subtree.json +2 -2
  25. package/repos/tsgo.subtree.json +2 -2
  26. package/HARNESS.md +0 -66
  27. package/dist/bin/effect-harness.d.ts +0 -2
  28. package/dist/bin/effect-harness.js +0 -34
  29. package/dist/bin/effect-harness.js.map +0 -1
  30. package/dist/src/cli/Main.d.ts +0 -7
  31. package/dist/src/cli/Main.js +0 -45
  32. package/dist/src/cli/Main.js.map +0 -1
  33. package/dist/src/harness/Errors.d.ts +0 -24
  34. package/dist/src/harness/Errors.js +0 -26
  35. package/dist/src/harness/Errors.js.map +0 -1
  36. package/dist/src/harness/Guardrails.d.ts +0 -7
  37. package/dist/src/harness/Guardrails.js +0 -50
  38. package/dist/src/harness/Guardrails.js.map +0 -1
  39. package/dist/src/harness/Model.d.ts +0 -52
  40. package/dist/src/harness/Model.js +0 -170
  41. package/dist/src/harness/Model.js.map +0 -1
  42. package/dist/src/harness/ModuleSources.d.ts +0 -5
  43. package/dist/src/harness/ModuleSources.js +0 -47
  44. package/dist/src/harness/ModuleSources.js.map +0 -1
  45. package/dist/src/harness/ProviderDiscovery.d.ts +0 -172
  46. package/dist/src/harness/ProviderDiscovery.js +0 -157
  47. package/dist/src/harness/ProviderDiscovery.js.map +0 -1
  48. package/dist/src/harness/SourcePin.d.ts +0 -4
  49. package/dist/src/harness/SourcePin.js +0 -214
  50. package/dist/src/harness/SourcePin.js.map +0 -1
  51. package/dist/src/harness/verify/JsonFields.d.ts +0 -1
  52. package/dist/src/harness/verify/JsonFields.js +0 -4
  53. package/dist/src/harness/verify/JsonFields.js.map +0 -1
  54. package/dist/src/harness/verify/Pipeline.d.ts +0 -7
  55. package/dist/src/harness/verify/Pipeline.js +0 -55
  56. package/dist/src/harness/verify/Pipeline.js.map +0 -1
  57. package/dist/src/harness/verify/ProviderProfile.d.ts +0 -3
  58. package/dist/src/harness/verify/ProviderProfile.js +0 -726
  59. package/dist/src/harness/verify/ProviderProfile.js.map +0 -1
  60. package/dist/src/harness/verify/ProviderRepository.d.ts +0 -4
  61. package/dist/src/harness/verify/ProviderRepository.js +0 -127
  62. package/dist/src/harness/verify/ProviderRepository.js.map +0 -1
  63. package/dist/src/harness/verify/Tsgo.d.ts +0 -3
  64. package/dist/src/harness/verify/Tsgo.js +0 -166
  65. package/dist/src/harness/verify/Tsgo.js.map +0 -1
  66. package/dist/src/harness/verify/TsgoMetadata.d.ts +0 -4
  67. package/dist/src/harness/verify/TsgoMetadata.js +0 -50
  68. package/dist/src/harness/verify/TsgoMetadata.js.map +0 -1
  69. package/dist/src/harness/verify/TsgoPolicy.d.ts +0 -208
  70. package/dist/src/harness/verify/TsgoPolicy.js +0 -143
  71. package/dist/src/harness/verify/TsgoPolicy.js.map +0 -1
  72. package/dist/src/harness/verify/TsgoSuppressions.d.ts +0 -2
  73. package/dist/src/harness/verify/TsgoSuppressions.js +0 -24
  74. package/dist/src/harness/verify/TsgoSuppressions.js.map +0 -1
  75. package/dist/src/harness/verify/VerifyStage.d.ts +0 -62
  76. package/dist/src/harness/verify/VerifyStage.js +0 -85
  77. package/dist/src/harness/verify/VerifyStage.js.map +0 -1
  78. package/dist/src/platform/Json.d.ts +0 -4
  79. package/dist/src/platform/Json.js +0 -16
  80. package/dist/src/platform/Json.js.map +0 -1
  81. package/dist/src/platform/Process.d.ts +0 -6
  82. package/dist/src/platform/Process.js +0 -35
  83. package/dist/src/platform/Process.js.map +0 -1
  84. package/harness/code.md +0 -83
  85. package/harness/diagnostic-layers.md +0 -94
  86. package/harness/effect-routes.md +0 -50
  87. package/harness/feedback-loop.md +0 -156
  88. package/harness/index.md +0 -83
  89. package/harness/offcial-guide.md +0 -50
  90. package/harness/offcial-migrate.md +0 -220
  91. package/harness/source.md +0 -91
  92. package/harness/tsgo-routes.md +0 -58
  93. package/harness/tsgo.md +0 -241
  94. package/provider/docs/diagnostics.md +0 -48
  95. package/provider/docs/discovery.md +0 -104
  96. package/provider/docs/editor-policy.md +0 -55
  97. package/provider/docs/effect-code.md +0 -41
  98. package/provider/docs/index.md +0 -48
  99. package/provider/docs/managed-surfaces.md +0 -51
  100. package/provider/docs/package-config.md +0 -71
  101. package/provider/docs/quality-policy.md +0 -68
  102. package/provider/docs/source-identity.md +0 -48
  103. package/provider/effect-harness.provider.json +0 -1020
  104. package/provider/index.md +0 -189
  105. package/provider/snippets/agents.md +0 -34
package/provider/index.md DELETED
@@ -1,189 +0,0 @@
1
- ---
2
- audience: [agent, human]
3
- authors:
4
- - codex
5
- reviewed_by: []
6
- purpose: 定义 effect-harness provider 对任意 target 暴露的能力、受管 surface 和模板边界。
7
- status: active
8
- sources:
9
- - provider/effect-harness.provider.json
10
- - provider/docs/discovery.md
11
- - provider/docs/index.md
12
- - provider/snippets/agents.md
13
- - harness/offcial-migrate.md
14
- - harness/tsgo.md
15
- updated: 2026-07-02
16
- ---
17
-
18
- # Provider Profile
19
-
20
- `provider/` 是 effect-harness 对外暴露的 provider contract。它描述任意 target 接入
21
- effect-harness 时应该接收哪些受管能力。
22
-
23
- Prelude 是 provider lifecycle owner,也可以作为 target 接入 effect-harness。外部仓库和 Prelude
24
- 本仓作为 target 时,应该消费同一份 provider profile、同一组 docs bundle 和同一组 snippets。
25
-
26
- `effect-harness` 本仓是这份 contract 的第一个 self-conforming repository。self-conformance
27
- 只证明本仓符合 exported harness 声明,不在本仓生成 `.prelude/**` 或 Prelude target lifecycle
28
- state。
29
-
30
- 当前真源:
31
-
32
- - `provider/effect-harness.provider.json`
33
- - `provider/docs/index.md`
34
- - `provider/snippets/agents.md`
35
- - `repos/effect.subtree.json`
36
- - `repos/tsgo.subtree.json`
37
- - `repos/effect/LLMS.md`
38
- - `repos/tsgo/README.md`
39
- - `harness/offcial-guide.md`
40
- - `harness/offcial-migrate.md`
41
- - `harness/tsgo.md`
42
-
43
- ## Layers
44
-
45
- 第一层是 harness 层:effect-harness 维护本仓内部的 Effect/tsgo 源入口实例、路线、验证、
46
- strict tsgo policy 和 Effect package 基线。
47
-
48
- 第二层是 provider 层:effect-harness 通过 `provider/effect-harness.provider.json` 暴露 target
49
- 应该接收的能力,Prelude 负责 materialize、drift detection、update 和 verify。
50
-
51
- Partita 负责 GitHub subtree pin 语义和 source contract;effect-harness 不复制这套能力。Prelude
52
- 负责 target lifecycle;effect-harness 不投影 Codex runtime 资产、反馈入口、目标 `AGENTS.md`
53
- managed block 或 `.effect-harness.json` state。
54
-
55
- ## Delivery Modes
56
-
57
- | Mode | Contract field | Delivery |
58
- | --- | --- | --- |
59
- | internal harness | `deliveryModes.internalHarness` | 只服务 provider 仓维护和 self-conformance,不投递到 target。 |
60
- | provider artifact reference | `deliveryModes.providerArtifactReference` | 随 package artifact 保留,target 只记录 identity,不本地维护 source tree 或 route docs。 |
61
- | exported harness | `deliveryModes.exportedHarness` | Prelude 后续可以投递到 target,并纳入 provider record 与 drift 判断。 |
62
-
63
- `provider/effect-harness.provider.json.selfConformance` MUST 声明 `completionGate: "pnpm verify"`。
64
-
65
- `provider/effect-harness.provider.json.selfConformance.selfMaterialization` MUST 是 `false`。
66
-
67
- provider repository MUST NOT 出现
68
- `.prelude/**`、`.prelude/providers/effect-harness/**` 或 target provider record 本体。
69
-
70
- ## Capabilities
71
-
72
- provider 当前暴露以下能力:
73
-
74
- | Capability | Contribution | Target surface |
75
- | --- | --- | --- |
76
- | Effect v4 package baseline | `contributions.packageJson.dependencyGroups.runtime` | `package.json` dependencies |
77
- | Effect testing baseline | `contributions.packageJson.dependencyGroups.testing` | `package.json` devDependencies |
78
- | Effect diagnostics packages | `contributions.packageJson.dependencyGroups.diagnostics` | `package.json` devDependencies |
79
- | Native tsgo backend package | `contributions.packageJson.dependencyGroups.nativeBackend` | `package.json` devDependencies |
80
- | ESLint baseline | `contributions.packageJson.dependencyGroups.linting` | `package.json` devDependencies |
81
- | Effect diagnostics | `contributions.packageJson.scripts.typecheck` | `tsgo --noEmit` |
82
- | Native tsgo backend setup | `contributions.packageJson.scripts.prepare` | `effect-tsgo patch` |
83
- | Effect tests | `contributions.packageJson.scripts.test` | `vitest run` |
84
- | ESLint guardrail entry | `contributions.packageJson.scripts.lint` | `eslint` |
85
- | Strict language-service policy | `contributions.tsconfig.compilerOptions.plugins[]` | `tsconfig.json` plugin |
86
- | Strict tsgo execution policy | `contributions.tsconfig.tsgo` | `tsconfig.json` projection and package scripts |
87
- | Editor policy | `contributions.editorPolicy` | editor settings projection |
88
- | Lint guardrails | `contributions.lintGuardrails` | repository boundary and syntax-level guardrails |
89
- | Test policy | `contributions.testPolicy` | `@effect/vitest` baseline and test entry |
90
- | Verification policy | `contributions.verificationPolicy` | completion gate and verify stages |
91
- | Provider discovery | `provider-discover` | package artifact locator and machine-readable provider envelope |
92
- | Provider identity record | `providerRecord` | `.prelude/providers/effect-harness/provider.json` |
93
- | Source identity | `sourceEntries`、`sourceBoundary` | provider record artifact identity only |
94
- | Target docs bundle | `contributions.documentationBundle` | `.prelude/providers/effect-harness/docs/**` |
95
- | Target snippets | `contributions.snippets` | `.prelude/providers/effect-harness/snippets/**` |
96
-
97
- 这些 target surface 是 exported harness。它们可以出现在真实 target 中,但不能出现在
98
- `effect-harness` provider repository 中。
99
-
100
- ## Target Surfaces
101
-
102
- 当前 provider target surfaces 是受管 surface。目标可以是 Prelude 本仓,也可以是其他接入仓库。
103
-
104
- Target 应该接收:
105
-
106
- - `package.json` dependencies and scripts
107
- - `tsconfig.json` strict language-service plugin
108
- - editor settings projection
109
- - ESLint package baseline and guardrail config projection
110
- - lint/test/verification policy records
111
- - `.prelude/providers/effect-harness/provider.json` provider record
112
- - `.prelude/providers/effect-harness/docs/**` docs bundle
113
- - `.prelude/providers/effect-harness/snippets/**` snippets
114
- - provider artifact/source identities
115
-
116
- Target 不应该接收:
117
-
118
- - `repos/effect/` 本体
119
- - `repos/tsgo/` 本体
120
- - `repos/effect.subtree.json` 本体
121
- - `repos/tsgo.subtree.json` 本体
122
- - `repos/effect/LLMS.md` 本体
123
- - `repos/tsgo/README.md` 本体
124
- - `.codex` runtime files
125
- - effect-harness `AGENTS.md` 管理块
126
- - `.effect-harness.json` state
127
- - `.codex/effect-feedback` feedback intake
128
-
129
- 目标项目可以接收 provider record 中的 Effect source identity 和 tsgo source identity,但不接收
130
- provider-internal source tree 本体。
131
-
132
- 包含 `.codex` runtime files、effect-harness `AGENTS.md` 管理块或 `.effect-harness.json`
133
- state 的 provider records 应按当前 profile 重新生成。
134
-
135
- ## Managed Docs
136
-
137
- `provider/docs/**` 是 target-facing docs bundle 的 provider source。它不是本仓 harness
138
- 维护手册,也不引用 provider-internal source tree 作为 target 本地路径。
139
-
140
- Prelude materialization 时应把 docs bundle 投递到 `.prelude/providers/effect-harness/docs/**`,
141
- 并把它纳入 provider record surfaces。目标项目对这些文件的本地修改属于 drift,需要按 Prelude
142
- maintain 规则处理。
143
-
144
- `provider/snippets/**` 是受管 snippet source。snippet 可以被用户或 target-local policy 引用,
145
- 但 effect-harness 不直接管理目标 `AGENTS.md` block。
146
-
147
- ## Discovery
148
-
149
- Prelude SHOULD 通过 `npx --yes @sayoriqwq/effect-harness provider-discover` 读取 provider discovery
150
- envelope。
151
-
152
- discovery envelope 暴露 provider identity、artifact root、package locator、target-managed surfaces、
153
- artifact-only references、source identity 和 internal harness surfaces。
154
-
155
- Prelude MUST NOT 把 `provider/effect-harness.provider.json` 复制进 Prelude 源码并手写保持同步。
156
-
157
- Prelude MUST NOT 把 artifact-only references 当作 target-managed files 投递。
158
-
159
- ## 编辑器策略
160
-
161
- `contributions.editorPolicy` 把 source-entry editor policy 投影为 target-facing contribution。
162
-
163
- `repos/**` 的 auto-import exclusion 是默认硬边界。watch/search exclusion 是 recommended policy。
164
- 文件隐藏是 preference。VSCode 和 Zed 的配置 shape 分开记录。
165
-
166
- 这个 contribution 服务于 provider artifact 中的 source identity,不要求 target 接收 provider-internal
167
- source tree 本体。
168
-
169
- ## Tsgo policy
170
-
171
- profile 把 `harness/tsgo.md` 的 strict policy 投影为 `tsgoPolicy` 和
172
- `contributions.tsconfig.compilerOptions.plugins[]`。
173
-
174
- 当前 provider 只有 `strict-v4` profile,不提供 relaxed 或 compatibility profile。
175
-
176
- 目标项目接入后应修复 diagnostics,不通过 local override 降低 strict policy。
177
-
178
- `includeSuggestionsInTsc` 固定为 `true`;`ignoreEffectSuggestionsInTscExitCode`、
179
- `ignoreEffectWarningsInTscExitCode` 和 `ignoreEffectErrorsInTscExitCode` 固定为 `false`。
180
-
181
- ## Quality policy
182
-
183
- `contributions.lintGuardrails` 负责 repository boundary、Effect v4 CLI import boundary、test entry 和
184
- syntax-level guardrails。它不负责 Effect semantic diagnostics。
185
-
186
- `contributions.testPolicy` 记录 `@effect/vitest` baseline 和 expected test entry。
187
-
188
- `contributions.verificationPolicy` 记录 `pnpm verify` completion gate、local diagnostic commands 和
189
- stage semantics。Prelude 仍负责 target materialization、drift 和 maintain lifecycle。
@@ -1,34 +0,0 @@
1
- ---
2
- audience: agent
3
- authors:
4
- - codex
5
- reviewed_by: []
6
- purpose: 提供 target 可引用的 effect-harness agent instruction snippet。
7
- status: active
8
- sources:
9
- - provider/effect-harness.provider.json
10
- - provider/docs/index.md
11
- updated: 2026-07-02
12
- ---
13
-
14
- # Effect Harness Snippet
15
-
16
- ## Snippet
17
-
18
- ```md
19
- 在本 target 编写 Effect 代码时,使用 effect-harness provider 维护的受管 surface。
20
-
21
- - 修改 Effect 应用代码或测试代码前,先读 `.prelude/providers/effect-harness/docs/effect-code.md`。
22
- - 修改 `package.json`、`tsconfig.json`、diagnostic scripts 或 Effect lint policy 前,先读 `.prelude/providers/effect-harness/docs/diagnostics.md`。
23
- - 修改 provider record 或 source identity 字段前,先读 `.prelude/providers/effect-harness/docs/source-identity.md`。
24
- - 从 `effect`、`@effect/platform-node` 和 `@effect/vitest` 等已安装 package import;不要从 provider-internal `repos/effect` 或 `repos/tsgo` import。
25
- - 修改受管 Effect 代码或 provider-managed surfaces 后,运行 target verify command。
26
- ```
27
-
28
- ## Boundary
29
-
30
- 这个 snippet 是 provider-managed source content。
31
-
32
- Prelude MAY 把它 materialize 到 `.prelude/providers/effect-harness/snippets/agents.md`。
33
-
34
- effect-harness MUST NOT 直接管理 target `AGENTS.md` block。