project-tiny-context-harness 0.2.53 → 0.2.55

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 (46) hide show
  1. package/README.md +122 -69
  2. package/assets/README.md +113 -62
  3. package/assets/README.zh-CN.md +8 -6
  4. package/assets/agents/AGENTS_CORE.md +17 -16
  5. package/assets/context_templates/product-surface-contract.md +60 -0
  6. package/assets/github/harness.yml +15 -11
  7. package/assets/make/ty-context.mk +48 -0
  8. package/assets/skills/context_development_engineer/SKILL.md +9 -6
  9. package/assets/skills/context_full_project_export/SKILL.md +13 -13
  10. package/assets/skills/context_harness_upgrade/SKILL.md +9 -9
  11. package/assets/skills/context_product_plan/SKILL.md +7 -4
  12. package/assets/skills/context_surface_contract/SKILL.md +168 -0
  13. package/assets/skills/context_uiux_design/SKILL.md +7 -4
  14. package/assets/skills/plan_acceptance_checklist_compiler/SKILL.md +427 -0
  15. package/assets/tools/validate_context.py +1 -1
  16. package/dist/cli.js +1 -1
  17. package/dist/commands/check-modularity.js +14 -6
  18. package/dist/commands/export-context.js +4 -4
  19. package/dist/commands/index.js +8 -5
  20. package/dist/commands/init.js +1 -1
  21. package/dist/commands/package-source.js +1 -1
  22. package/dist/commands/upgrade.js +1 -1
  23. package/dist/lib/config.js +7 -2
  24. package/dist/lib/constants.d.ts +1 -1
  25. package/dist/lib/constants.js +1 -1
  26. package/dist/lib/context-export.js +5 -5
  27. package/dist/lib/harness-root.d.ts +5 -0
  28. package/dist/lib/harness-root.js +32 -4
  29. package/dist/lib/legacy-managed-scan.d.ts +2 -0
  30. package/dist/lib/legacy-managed-scan.js +79 -0
  31. package/dist/lib/legacy-sdlc-migration.d.ts +2 -0
  32. package/dist/lib/legacy-sdlc-migration.js +189 -0
  33. package/dist/lib/managed-file.d.ts +18 -12
  34. package/dist/lib/managed-file.js +25 -14
  35. package/dist/lib/migrations.js +4 -2
  36. package/dist/lib/modularity.d.ts +9 -0
  37. package/dist/lib/modularity.js +132 -8
  38. package/dist/lib/package-json-config.js +3 -3
  39. package/dist/lib/paths.d.ts +2 -2
  40. package/dist/lib/paths.js +2 -2
  41. package/dist/lib/sync-engine.js +33 -31
  42. package/dist/lib/types.d.ts +12 -0
  43. package/dist/lib/validators.js +37 -4
  44. package/package.json +5 -5
  45. package/source-mappings.yaml +13 -13
  46. package/assets/make/sdlc-harness.mk +0 -43
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Translations: [Chinese (Simplified)](https://github.com/Seven128/project-tiny-context-harness/blob/main/README.zh-CN.md)
10
10
 
11
- `project-tiny-context-harness` ships the `sdlc-harness` CLI for Project Tiny Context Harness: repo-native project memory for AI coding agents.
11
+ `project-tiny-context-harness` ships the `ty-context` CLI for Project Tiny Context Harness: repo-native project memory for AI coding agents.
12
12
 
13
13
  The default is **Minimal Context Harness**. It maintains a compact `project_context/**` fact source, a short `AGENTS.md` startup router, role Skills and a `validate-context` gate so fresh agents can recover project intent, constraints, verification entry points and next safe actions quickly.
14
14
 
@@ -27,7 +27,7 @@ Best for:
27
27
  Not for:
28
28
 
29
29
  - replacing tests, review, CI or issue trackers
30
- - autonomous SDLC execution
30
+ - autonomous Tiny Context execution
31
31
  - codebase semantic indexing or external docs retrieval
32
32
 
33
33
  Concrete shift:
@@ -65,14 +65,14 @@ Coding agents can move quickly inside one thread and still drift when a new chat
65
65
 
66
66
  Minimal Context Harness creates a small, explicit recovery path: project goal, boundaries, architecture context, validation entry points and durable task conclusions. It is designed to sit beside specs, tests, issues, docs and code intelligence tools instead of replacing them.
67
67
 
68
- The core bet is: **keep the memory, drop the ceremony**. Earlier stage-based workflows pushed ordinary software work through explicit phase artifacts and gates. Modern coding agents already internalize much of the understand, design, implement, test and repair loop, so Project Tiny Context Harness keeps the high-density repo context that survives fresh chats without making every task follow SDLC-stage choreography.
68
+ The core bet is: **keep the memory, drop the ceremony**. Earlier stage-based workflows pushed ordinary software work through explicit phase artifacts and gates. Modern coding agents already internalize much of the understand, design, implement, test and repair loop, so Project Tiny Context Harness keeps the high-density repo context that survives fresh chats without making every task follow Tiny Context-stage choreography.
69
69
 
70
70
  ## Positioning
71
71
 
72
72
  | Adjacent tool type | Use it for | Harness stance |
73
73
  |---|---|---|
74
74
  | Spec-first kits | Turning feature ideas into structured specs and plans. | Complementary; Harness keeps durable project facts, not a required spec chain. |
75
- | BMAD-style workflows and full SDLC processes | Coordinated role/process ceremonies on high-risk work. | Lighter default; no phase gates or work-product trees. |
75
+ | BMAD-style workflows and full Tiny Context processes | Coordinated role/process ceremonies on high-risk work. | Lighter default; no phase gates or work-product trees. |
76
76
  | Task Master-style planners | Backlog decomposition and task execution state. | Complementary; Harness does not own task state. |
77
77
  | Context7/Serena-style retrieval or code-intelligence tools | Pulling external docs, symbols or repository facts on demand. | Complementary; Harness stores local repo truth. |
78
78
  | IDE or agent memory | Tool-specific continuity inside one product surface. | Portable fallback; plain files any agent can read. |
@@ -85,7 +85,7 @@ cd project-tiny-context-harness-demo
85
85
  git init
86
86
  npm init -y
87
87
  npm install -D project-tiny-context-harness@latest
88
- npx --yes --package project-tiny-context-harness@latest sdlc-harness init
88
+ npx --yes --package project-tiny-context-harness@latest ty-context init
89
89
  make validate-context
90
90
  ```
91
91
 
@@ -115,8 +115,8 @@ npm ci
115
115
  npm run smoke:quickstart
116
116
  npm run preview:pack
117
117
  cd /path/to/your/test-repo
118
- npm install -D /path/to/project-tiny-context-harness/tmp/sdlc/source-preview/package/project-tiny-context-harness-0.2.53.tgz
119
- npx --no-install sdlc-harness init --adopt
118
+ npm install -D /path/to/project-tiny-context-harness/tmp/ty-context/source-preview/package/project-tiny-context-harness-0.2.55.tgz
119
+ npx --no-install ty-context init --adopt
120
120
  make validate-context
121
121
  ```
122
122
 
@@ -175,16 +175,16 @@ For common launch and adoption questions, see the [FAQ](https://github.com/Seven
175
175
 
176
176
  ```sh
177
177
  npm install -D project-tiny-context-harness@latest
178
- npx --yes --package project-tiny-context-harness@latest sdlc-harness init
178
+ npx --yes --package project-tiny-context-harness@latest ty-context init
179
179
  ```
180
180
 
181
181
  For existing projects:
182
182
 
183
183
  ```sh
184
- npx --yes --package project-tiny-context-harness@latest sdlc-harness init --adopt
184
+ npx --yes --package project-tiny-context-harness@latest ty-context init --adopt
185
185
  ```
186
186
 
187
- `init` creates `project_context/context.toml`, `project_context/global.md`, `project_context/architecture.md`, `project_context/areas/main.md`, `project_context/areas/main/verification.md`, agent guidance, Context authoring Skills, a full-project export Skill, a Harness upgrade Skill, managed templates/tools, a Makefile include and `.github/workflows/harness.yml`. The generated workflow runs only the selected Harness gate, `validate-context` or `validate-harness`; maintainer-only package tests and source-drift checks are intentionally kept out of consumer projects. It does not create stage work-product trees, lifecycle state or stage skills by default.
187
+ `init` creates `project_context/context.toml`, `project_context/global.md`, `project_context/architecture.md`, `project_context/areas/main.md`, `project_context/areas/main/verification.md`, agent guidance, Context authoring Skills, a Product Surface Contract Skill, a full-project export Skill, a Harness upgrade Skill, a plan acceptance checklist Skill, managed templates/tools, a Makefile include and `.github/workflows/harness.yml`. The generated workflow runs only the selected Harness gate: `validate-context`, `validate-code-modularity` or the composite `validate-harness`; maintainer-only package tests and source-drift checks are intentionally kept out of consumer projects. It does not create business Product Surface Contract files, stage work-product trees, lifecycle state or stage skills by default.
188
188
 
189
189
  ## FAQ
190
190
 
@@ -212,47 +212,94 @@ It should stay smaller than a full process. Ordinary bug fixes and local refacto
212
212
 
213
213
  ## CLI Entry Safety
214
214
 
215
- The canonical npm package is `project-tiny-context-harness`; `sdlc-harness` is the bin name. Prefer package-qualified `npx` commands for ad hoc use because bare `npx sdlc-harness` can resolve an older package name or a stale local install. After `init`, the managed Makefile wrapper uses the canonical latest CLI by default and can be overridden with `SDLC_HARNESS=...` when a project intentionally pins a local package.
215
+ The canonical npm package is `project-tiny-context-harness`; `ty-context` is the bin name. Prefer package-qualified `npx` commands for ad hoc use because bare `npx ty-context` can resolve an older package name or a stale local install. After `init`, the managed Makefile wrapper uses the canonical latest CLI by default and can be overridden with `TY_CONTEXT=...` when a project intentionally pins a local package.
216
216
 
217
- Use `npx --no-install sdlc-harness ...` only when you explicitly want the already installed local package, such as release smoke tests against a packed tarball.
217
+ Use `npx --no-install ty-context ...` only when you explicitly want the already installed local package, such as release smoke tests against a packed tarball.
218
218
 
219
219
  ## Capabilities
220
220
 
221
221
  | Capability | Entry Point | Description |
222
222
  |---|---|---|
223
- | Project initialization | `npx --yes --package project-tiny-context-harness@latest sdlc-harness init` | Creates `project_context/context.toml`, `project_context/global.md`, `project_context/architecture.md`, `project_context/areas/main.md`, `project_context/areas/main/verification.md`, `AGENTS.md`, minimal managed assets and a Makefile include. |
224
- | Existing project adoption | `npx --yes --package project-tiny-context-harness@latest sdlc-harness init --adopt` | Adds Minimal Context Harness non-destructively to an existing repository. |
225
- | Configurable Harness root | `--harness-folder`, `package.json#sdlcHarness.harnessFolderName`, `sdlc-harness.config.json` | Supports Codex `.codex`, Claude `.claude`, Cursor `.cursor`, Cline `.cline`, Roo `.roo`, Gemini `.gemini` or a custom folder. |
223
+ | Project initialization | `npx --yes --package project-tiny-context-harness@latest ty-context init` | Creates `project_context/context.toml`, `project_context/global.md`, `project_context/architecture.md`, `project_context/areas/main.md`, `project_context/areas/main/verification.md`, `AGENTS.md`, minimal managed assets and a Makefile include. |
224
+ | Existing project adoption | `npx --yes --package project-tiny-context-harness@latest ty-context init --adopt` | Adds Minimal Context Harness non-destructively to an existing repository. |
225
+ | Configurable Harness root | `--harness-folder`, `package.json#tyContext.harnessFolderName`, `ty-context.config.json` | Supports Codex `.codex`, Claude `.claude`, Cursor `.cursor`, Cline `.cline`, Roo `.roo`, Gemini `.gemini` or a custom folder. |
226
226
  | Product planning Skill | `<harnessRoot>/skills/context_product_plan/SKILL.md` | Handles explicit product-planning requests and writes durable product conclusions to `project_context/**`. |
227
227
  | UI/UX design Skill | `<harnessRoot>/skills/context_uiux_design/SKILL.md` | Handles explicit UI/UX design requests, writes screen/interaction conclusions to `project_context/**`, updates root `DESIGN.md` visual tokens with Google `@google/design.md`, and includes compact visual-quality calibration for product/page positioning, user needs, information density, brand/product UI and common AI-design anti-patterns. |
228
228
  | Development engineer Skill | `<harnessRoot>/skills/context_development_engineer/SKILL.md` | Handles explicit development-engineering requests and writes durable engineering conclusions to `project_context/**`. |
229
- | Full project context export Skill | `<harnessRoot>/skills/context_full_project_export/SKILL.md` | Handles explicit full-project or code-level export requests and uses `export-context --all`, `--full` or `--code` to create temporary artifacts under `tmp/sdlc/context-exports/**`. |
229
+ | Product Surface Contract Skill | `<harnessRoot>/skills/context_surface_contract/SKILL.md` | Handles explicit Product Surface Contract, Screen Contract, surface responsibility and main/drilldown ownership work; it compiles project-owned surface contracts into `project_context/**` without adding a new context role or gate. |
230
+ | Full project context export Skill | `<harnessRoot>/skills/context_full_project_export/SKILL.md` | Handles explicit full-project or code-level export requests and uses `export-context --all`, `--full` or `--code` to create temporary artifacts under `tmp/ty-context/context-exports/**`. |
230
231
  | Harness upgrade Skill | `<harnessRoot>/skills/context_harness_upgrade/SKILL.md` | Handles explicit Tiny Context / Project Tiny Context Harness upgrade requests such as “upgrade Tiny Context” and “use the Tiny Context upgrade skill to upgrade this project”; it runs `upgrade` first, handles only migration-scoped `manual_required` / `blocked` follow-up, then runs diagnostics. |
232
+ | Plan acceptance checklist Skill | `<harnessRoot>/skills/plan_acceptance_checklist_compiler/SKILL.md` | Handles explicit requests to turn a referenced plan, RFC or implementation proposal into a falsifiable acceptance checklist and paste-ready goal/target-mode prompt under `tmp/ty-context/plan-acceptance/**`; it does not execute the plan or prove completion. |
231
233
  | Project-local Skills | `<harnessRoot>/skills/<role>/SKILL.md` | Optional local product/design/development Skills created by the project, such as `product_plan`, `uiux_design` or `development_engineer`. They supersede package-managed default Skills when more specific, are not overwritten by `sync`, and should keep front matter trigger keywords aligned with the project `AGENTS.md` role-trigger rule. |
232
- | Managed file sync | `make sdlc-sync` or `npx --yes --package project-tiny-context-harness@latest sdlc-harness sync` | Refreshes package-managed guidance, default Skills, Makefile include, context templates, tools and workflow YAML. It does not run migrations or perform semantic Context generation; when migration work is pending it refuses to write and tells you to run `upgrade`. |
233
- | Upgrade | `make sdlc-upgrade` or `npx --yes --package project-tiny-context-harness@latest sdlc-harness upgrade` | Default command after updating the npm package. Builds an upgrade plan, stops before writes when `blocked` items exist, otherwise applies `safe_pending` migrations, runs `sync` and `doctor`, and exits non-zero when manual follow-up or diagnostics remain. |
234
- | Upgrade check | `npx --yes --package project-tiny-context-harness@latest sdlc-harness upgrade --check [--json]` | Checks the upgrade plan without writing files. Reports `safe_pending`, `manual_required` and `blocked`; exits non-zero when any work remains. |
235
- | Combined project export | `npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --all [--check]` | Creates both default temporary exports under `tmp/sdlc/context-exports/**`. |
236
- | Project Context export | `npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --full [--output tmp/sdlc/context-exports/name.md] [--check]` | Creates a temporary Context summary artifact. It is not Context and must not be registered in `project_context/context.toml`. |
237
- | Code implementation export | `npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --code [--output tmp/sdlc/context-exports/name.md] [--check]` | Creates a temporary single-file code implementation artifact. It is not Context and must not be registered in `project_context/context.toml`. |
238
- | Modularity check | `npx --yes --package project-tiny-context-harness@latest sdlc-harness check-modularity --touched [--limit 300] [--fail-on-warning]` | Warns when selected handwritten source files exceed a physical line-count limit; `--file <path>` and `--base <ref>` select explicit files or branch changes. |
239
- | Context validation | `npx --yes --package project-tiny-context-harness@latest sdlc-harness validate-context`, `make validate-context` | Checks required project recovery fields, Context graph metadata, declared paths/roles and fake test-execution claims. |
240
- | Diagnostics | `make sdlc-doctor` or `npx --yes --package project-tiny-context-harness@latest sdlc-harness doctor` | Reports Harness root, package version, schema version and required Minimal Context paths. |
241
- | Package source checks | `sdlc-harness package sync-source`, `sdlc-harness package check-source` | Maintainer-only commands for keeping package canonical assets aligned with the source workspace. |
234
+ | Managed file sync | `make ty-context-sync` or `npx --yes --package project-tiny-context-harness@latest ty-context sync` | Refreshes package-managed guidance, default Skills, Makefile include, context templates, tools and workflow YAML. It does not run migrations or perform semantic Context generation; when migration work is pending it refuses to write and tells you to run `upgrade`. |
235
+ | Upgrade | `make ty-context-upgrade` or `npx --yes --package project-tiny-context-harness@latest ty-context upgrade` | Default command after updating the npm package. Builds an upgrade plan, stops before writes when `blocked` items exist, otherwise applies `safe_pending` migrations, runs `sync` and `doctor`, and exits non-zero when manual follow-up or diagnostics remain. |
236
+ | Upgrade check | `npx --yes --package project-tiny-context-harness@latest ty-context upgrade --check [--json]` | Checks the upgrade plan without writing files. Reports `safe_pending`, `manual_required` and `blocked`; exits non-zero when any work remains. |
237
+ | Combined project export | `npx --yes --package project-tiny-context-harness@latest ty-context export-context --all [--check]` | Creates both default temporary exports under `tmp/ty-context/context-exports/**`. |
238
+ | Project Context export | `npx --yes --package project-tiny-context-harness@latest ty-context export-context --full [--output tmp/ty-context/context-exports/name.md] [--check]` | Creates a temporary Context summary artifact. It is not Context and must not be registered in `project_context/context.toml`. |
239
+ | Code implementation export | `npx --yes --package project-tiny-context-harness@latest ty-context export-context --code [--output tmp/ty-context/context-exports/name.md] [--check]` | Creates a temporary single-file code implementation artifact. It is not Context and must not be registered in `project_context/context.toml`. |
240
+ | Modularity check | `npx --yes --package project-tiny-context-harness@latest ty-context check-modularity --touched [--limit 300] [--fail-on-warning]` | Reports selected handwritten source files over the physical line-count limit; `--file <path>` and `--base <ref>` select explicit files or branch changes, and config waivers are reported distinctly. |
241
+ | Code modularity validation | `make validate-code-modularity` | Hard gate for touched handwritten source modularity; CI can set `TY_CONTEXT_MODULARITY_BASE=<ref>` to audit PR/base changes. |
242
+ | Harness validation | `make validate-harness` | Composite gate for `validate-context` and `validate-code-modularity`. |
243
+ | Context validation | `npx --yes --package project-tiny-context-harness@latest ty-context validate-context`, `make validate-context` | Checks required project recovery fields, Context graph metadata, declared paths/roles and fake test-execution claims. |
244
+ | Diagnostics | `make ty-context-doctor` or `npx --yes --package project-tiny-context-harness@latest ty-context doctor` | Reports Harness root, package version, schema version and required Minimal Context paths. |
245
+ | Package source checks | `ty-context package sync-source`, `ty-context package check-source` | Maintainer-only commands for keeping package canonical assets aligned with the source workspace. |
242
246
 
243
247
  For product, UI/UX and engineering tasks that touch design intent, API/Schema, state/runtime behavior, architecture boundaries or verification design, the default Skills compile a short current-task contract before implementation. The contract starts with `Context Delta: none|required`; `required` preserves context-first behavior, while `none` means the task can proceed against existing Context. For engineering, RFC and implementation work, the existing Task Contract also includes `Modularity Check: none|required|exception` so oversized touched files trigger split-or-exception reasoning. For module design work, the development engineer Skill also compiles `Applicable Module Design`: the relevant principles, minimal design logic and durable rationale that control the current implementation or verification choice. The task contract and Contract Conformance are handoff evidence, not new PRD, tech-plan, validator or gate surfaces.
244
248
 
245
- `sdlc-harness check-modularity` supports that field by auditing selected handwritten source files for physical line-count risk. It is warning-only by default and is not `validate-context`; teams that want CI enforcement can opt in with `--fail-on-warning`. The command provides file/line facts, while the agent still decides `none`, `required` or `exception` through the development engineer decomposition guidance.
249
+ For long-running plans, RFCs or implementation proposals, the plan acceptance checklist Skill can turn a plan plus relevant Context into a falsifiable acceptance checklist and a paste-ready goal/target-mode prompt. It is one pre-execution acceptance pass, not a task planner or workflow engine: it stores temporary inputs under `tmp/ty-context/plan-acceptance/**`, asks for confirmation when durable assumptions are unclear, and leaves execution evidence to the future executor, tests, CI, review or human acceptance.
250
+
251
+ For Product Surface work, `context_surface_contract` turns broad product/page/UI principles into project-owned surface responsibilities. A Product Surface can be a Web page, mobile screen, desktop window, game UI/HUD/menu, CLI/TUI output, extension UI or embedded/device interface. Cross-surface contracts use the existing `contract` role; area-owned screen facts stay in `area` or `subdomain`; repeatable validation paths use `verification`. The Harness does not add a new surface-specific role, does not create business surface contracts during `init` or `upgrade`, and does not turn surface conformance into a validator gate. Projects that want mandatory task blocks should add a separate project-local Skill, while `product-surface-contract.md` is only a compact managed template for optional Context authoring.
252
+
253
+ To create Product Surface Context in a user project, use the Skill through an agent because the package cannot safely infer business-specific screen duties from code alone. For a new project, `init` installs the Skill, template and routing guidance; as the project grows, ask the agent to run Product Surface Audit / Compile when a durable surface appears or when a product/UI/engineering task changes main/drilldown ownership. For an existing project, first run `ty-context upgrade`; then ask the agent to backfill the current surface responsibilities, review the proposed contract, and only then apply it to `project_context/**`:
254
+
255
+ ```text
256
+ Use context_surface_contract in Audit + Compile mode for this repo. Inspect current user-facing routes, screens, panels, CLI/TUI outputs and relevant Context. Propose Product Surface Contract Context using existing roles only. Do not edit product code.
257
+ ```
258
+
259
+ After review, apply the approved contract:
260
+
261
+ ```text
262
+ Apply the approved Product Surface Contract to project_context/**, update project_context/context.toml if a new contract file is needed, keep roles to contract/area/subdomain/verification, and run make validate-context.
263
+ ```
264
+
265
+ `ty-context check-modularity` supports that field by auditing selected handwritten source files for physical line-count risk. It is warning-only by default as a report command, while `validate-code-modularity` and `validate-harness` run it as a hard gate. The gate is not `validate-context`: `validate-context` remains pure Context recoverability. When `policy` is `scoped_waivers`, over-limit exceptions must be backed by `<harnessRoot>/config.yaml` `modularity.waivers` entries with `path`, narrow `category`, `reason` and `future_split_boundary`; handoff prose alone is not a machine waiver.
266
+
267
+ ### Modularity Policy
268
+
269
+ Newly generated Harness configs default to `strict_except_generated`, which enforces the touched/PR handwritten source limit without legacy waivers:
270
+
271
+ ```yaml
272
+ modularity:
273
+ limit: 300
274
+ policy: strict_except_generated
275
+ ```
276
+
277
+ Generated and non-source files are still auto-skipped when they match existing lock/build/dist/path exclusions or generated-file headers such as `@generated` / `Code generated ... DO NOT EDIT`. `strict_except_generated` does not allow `modularity.waivers`; any configured waiver fails the modularity gate.
278
+
279
+ Use `scoped_waivers` when a small number of legacy exceptions must be explicit and time-bounded:
280
+
281
+ ```yaml
282
+ modularity:
283
+ limit: 300
284
+ policy: scoped_waivers
285
+ waivers:
286
+ - path: src/legacy/big-file.ts
287
+ category: legacy_migration
288
+ reason: "Existing legacy module exceeds the hard source size bound."
289
+ future_split_boundary: "Extract provider adapters and retry policy."
290
+ ```
291
+
292
+ Omitting `policy` behaves the same as `scoped_waivers` for compatibility with existing projects. Allowed waiver categories are `generated`, `third_party_reference`, `legacy_migration`, `aggregate_styles` and `fixture_snapshot`.
246
293
 
247
294
  Multilingual trigger phrases are compatibility details. Public README, npm and launch copy stay English-first, and public/package-managed surfaces must remain English-complete; literal non-English examples are documented only where they explain generated Skill matching and must not be the sole activation path.
248
295
 
249
- The Harness upgrade Skill exists so consumer agents have a short, repeatable upgrade procedure for existing projects. It treats `sdlc-harness upgrade` as the default command after package updates, forbids standalone `sync` before upgrade, and limits manual handling to the migration scope reported by the CLI instead of guessing project semantics.
296
+ The Harness upgrade Skill exists so consumer agents have a short, repeatable upgrade procedure for existing projects. It treats `ty-context upgrade` as the default command after package updates, forbids standalone `sync` before upgrade, and limits manual handling to the migration scope reported by the CLI instead of guessing project semantics.
250
297
 
251
298
  For complex task-contract work, agents may use `plan.md` or an equivalent temporary plan surface as scratch space for `Context Delta`, `Task Contract`, implementation steps and Conformance notes. It is execution cache only: durable facts must be extracted into `project_context/**` or `DESIGN.md`, and temporary plans are not Context, not registered in `context.toml` and not default project assets.
252
299
 
253
- For Web pages, frontend layout, UI/UX, product module boundaries or decisions about where information belongs, agents should run a lightweight page product-positioning check before deciding whether the change is context-first. The check asks what judgment the user needs to make on the page, what information/actions/feedback the product must provide, what should not be persistent, what belongs in downstream consumption, ops, detail or another page, and whether layout and information density match the page task. If ownership is unclear, inspect the relevant pages and Context first. The check is input to change classification: it does not by itself require a Context update, new document chain or validator gate.
300
+ For Product Surface work, frontend layout, UI/UX, product module boundaries or decisions about where information belongs, agents should run a lightweight product/page positioning check before deciding whether the change is context-first. The check asks what judgment the user needs to make on the surface, what information/actions/feedback the product must provide, what should not be persistent, what belongs on the main surface versus drilldown, operations, diagnostics, evidence or detail, and whether layout and information density match the surface task. If ownership is unclear, inspect the relevant surfaces and Context first, and use `context_surface_contract` for a focused audit. The check is input to change classification: it does not by itself require a Context update, new role, new document chain or validator gate.
254
301
 
255
- The expected Context Priority Ladder is: read Context first, run the page product-positioning check when applicable, classify durable-fact impact or use `Context Delta` inside task-contract scenarios, choose context-first or code-first, then perform Contract Conformance when applicable and Context drift check before handoff. This is prompt-level guidance, not an edit-order validator.
302
+ The expected Context Priority Ladder is: read Context first, run the product/page positioning or Surface Contract check when applicable, classify durable-fact impact or use `Context Delta` inside task-contract scenarios, choose context-first or code-first, then perform Contract Conformance when applicable and Context drift check before handoff. This is prompt-level guidance, not an edit-order validator.
256
303
 
257
304
  Managed `AGENTS.md` guidance is intentionally a startup router, not a full manual. It should contain fact-source entry points, hard boundaries, key triggers and shortest validation commands; package consumers default long design reasoning to Context unless they already have a local spec/design convention. The source repository keeps stable Harness workflow rationale in `PROJECT_SPEC.md`. Role procedures belong in Skills and human usage guidance in README. The recommended 40-70 line range is a soft budget, not a validator gate.
258
305
 
@@ -297,9 +344,13 @@ Managed `AGENTS.md` guidance is intentionally a startup router, not a full manua
297
344
 
298
345
  A module design capsule should stay small and decision-shaped: `Principles` are stable execution constraints, `Design Logic` is the minimum choose/reject/degrade/compose logic, and `Design Rationale` keeps only reasons that change later implementation or verification decisions. Current thresholds, commands and probe parameters belong in the relevant contract or verification Context as execution instances, not as permanent principles.
299
346
 
300
- Other context files under `project_context/**` can declare `context_role` in front matter or receive a role from `context.toml`. Roles are semantic labels for agent reading and authoring behavior; `validate-context` checks graph structure, paths and field shapes instead of enforcing a writing template for every role. Supported roles are `global`, `architecture`, `area`, `domain`, `subdomain`, `contract`, `foundation`, `verification`, `deployment`, `archive`, `implementation-index` and `decision-rationale`.
301
-
302
- When authoring, migrating or cleaning up `project_context/areas/**`, run a soft role placement scan before registering every Markdown file as an `[[areas]]` entry. Keep `area` / `domain` for product ownership, use `subdomain` only for a smaller owned product context, move interface semantics into `contract`, stable theory or vocabulary into `foundation`, repeatable test/deploy execution paths into `verification` / `deployment`, code maps into `implementation-index`, design reasons into `decision-rationale`, and non-default historical or external material into `archive`. This is prompt-level guidance, not a validator gate.
347
+ Other context files under `project_context/**` can declare `context_role` in front matter or receive a role from `context.toml`. Roles are semantic labels for agent reading and authoring behavior; `validate-context` checks graph structure, paths and field shapes instead of enforcing a writing template for every role. Supported roles are `global`, `architecture`, `area`, `domain`, `subdomain`, `contract`, `foundation`, `verification`, `deployment`, `archive`, `implementation-index` and `decision-rationale`.
348
+
349
+ Product Surface Contracts use these existing roles. Use `contract` for cross-surface or cross-area files such as `project_context/areas/product-surface-contracts.md`; use `area` or `subdomain` for owned screen contracts inside one domain; use `verification` for repeatable UI/app/CLI surface checks. Do not add roles such as `surface-contract`, `product-surface`, `web-contract`, `app-contract` or `game-surface`.
350
+
351
+ `init` gives new projects the Product Surface Contract capability, not a pre-filled business contract. The first durable contract is created when a user or agent explicitly audits/compiles a surface responsibility and writes the approved facts into `project_context/**`. Existing projects receive the same Skill and template after `upgrade`, but `upgrade` intentionally does not inspect current screens or guess their responsibilities; treat Product Surface Context backfill as an explicit follow-up task.
352
+
353
+ When authoring, migrating or cleaning up `project_context/areas/**`, run a soft role placement scan before registering every Markdown file as an `[[areas]]` entry. Keep `area` / `domain` for product ownership, use `subdomain` only for a smaller owned product context, move interface semantics into `contract`, stable theory or vocabulary into `foundation`, repeatable test/deploy execution paths into `verification` / `deployment`, code maps into `implementation-index`, design reasons into `decision-rationale`, and non-default historical or external material into `archive`. This is prompt-level guidance, not a validator gate.
303
354
 
304
355
  Automatic migration moves legacy `project_context/modules/**/*.md` files into `project_context/areas/**/*.md`, creates a usable graph baseline and does not infer deep semantic roles. If an existing deep area file is really a foundation, contract, archive or implementation index, a later agent should update `context.toml` explicitly. Boundary rules are metadata only; Harness does not scan source imports or build a runtime dependency graph.
305
356
 
@@ -308,33 +359,33 @@ Automatic migration moves legacy `project_context/modules/**/*.md` files into `p
308
359
  `export-context --all` creates both temporary Markdown artifacts for copying into an external tool, archiving an ad hoc discussion or handing context to a one-off collaborator:
309
360
 
310
361
  ```sh
311
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --all
312
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --all --check
362
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --all
363
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --all --check
313
364
  ```
314
365
 
315
- This generates both default artifacts with the same timestamp: `tmp/sdlc/context-exports/full-project-context-<timestamp>.md` and `tmp/sdlc/context-exports/code-level-implementation-<timestamp>/code-level-implementation.md`. `--all` does not accept `--output`; use `--full` or `--code` for custom single-artifact paths.
366
+ This generates both default artifacts with the same timestamp: `tmp/ty-context/context-exports/full-project-context-<timestamp>.md` and `tmp/ty-context/context-exports/code-level-implementation-<timestamp>/code-level-implementation.md`. `--all` does not accept `--output`; use `--full` or `--code` for custom single-artifact paths.
316
367
 
317
368
  `export-context --full` creates only the temporary Markdown Context bundle:
318
369
 
319
370
  ```sh
320
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --full
321
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --full --output tmp/sdlc/context-exports/my-export.md
322
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --full --check
371
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --full
372
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --full --output tmp/ty-context/context-exports/my-export.md
373
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --full --check
323
374
  ```
324
375
 
325
- The default output is `tmp/sdlc/context-exports/full-project-context-<timestamp>.md`. The file title is `# Full Project Context Export`. `--check` reports the planned output path, source count, source file list and warnings without writing a file. The artifact header always says `Export artifact. Do not reference from project_context/context.toml.`
376
+ The default output is `tmp/ty-context/context-exports/full-project-context-<timestamp>.md`. The file title is `# Full Project Context Export`. `--check` reports the planned output path, source count, source file list and warnings without writing a file. The artifact header always says `Export artifact. Do not reference from project_context/context.toml.`
326
377
 
327
378
  The exporter includes Context files, key README / AGENTS / DESIGN documents, managed Skill guidance, Makefile verification-entry summaries, a directory tree summary and Context code-entry indexes. It excludes `.env*`, secret/token/cookie-oriented files, raw captures, licensed payload dumps, `node_modules`, build output, caches, coverage, test reports and existing export artifacts; obvious sensitive assignment values are redacted and reported as warnings.
328
379
 
329
380
  `export-context --code` creates one temporary Markdown file for handing the current implementation state to an external model:
330
381
 
331
382
  ```sh
332
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --code
333
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --code --output tmp/sdlc/context-exports/my-code-export.md
334
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --code --check
383
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --code
384
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --code --output tmp/ty-context/context-exports/my-code-export.md
385
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --code --check
335
386
  ```
336
387
 
337
- The default output is `tmp/sdlc/context-exports/code-level-implementation-<timestamp>/code-level-implementation.md`. The file title is `# Code-Level Implementation Export`. It scans main source and engineering configuration files, adds each file path, type, line count, character count, SHA256, a heuristic one-sentence summary and a fenced redacted code block. It does not split output into multiple Markdown files.
388
+ The default output is `tmp/ty-context/context-exports/code-level-implementation-<timestamp>/code-level-implementation.md`. The file title is `# Code-Level Implementation Export`. It scans main source and engineering configuration files, adds each file path, type, line count, character count, SHA256, a heuristic one-sentence summary and a fenced redacted code block. It does not split output into multiple Markdown files.
338
389
 
339
390
  Both export modes refuse `project_context/**` and non-temporary output paths. `validate-context` also rejects obvious export artifact names such as `code-level-implementation`, `full-project-context`, legacy Chinese export names, `project-overview`, `context-bundle`, `context-summary` or `context-export` if they are registered in `project_context/context.toml`.
340
391
 
@@ -375,15 +426,15 @@ mkdir -p <harnessRoot>/skills/uiux_design
375
426
  $EDITOR <harnessRoot>/skills/uiux_design/SKILL.md
376
427
  ```
377
428
 
378
- When a project-local Skill and a package-managed default Skill both apply, agents should use the more specific project-local Skill first. The local Skill should keep durable conclusions in `project_context/**` and `DESIGN.md`. Its front matter `description` should stay aligned with the matching default `context_*` Skill and the project `AGENTS.md` role-trigger rule; update both the local Skill and agent guidance when adding or narrowing product/design/development trigger terms. `sync` does not merge Skill overrides and does not overwrite separate project-local Skills. Existing `<harnessRoot>/pjsdlc_managed/override_skills/*.md` files should be migrated into standalone project-local Skills before running `sync`.
429
+ When a project-local Skill and a package-managed default Skill both apply, agents should use the more specific project-local Skill first. The local Skill should keep durable conclusions in `project_context/**` and `DESIGN.md`. Its front matter `description` should stay aligned with the matching default `context_*` Skill and the project `AGENTS.md` role-trigger rule; update both the local Skill and agent guidance when adding or narrowing product/design/development trigger terms. `sync` does not merge Skill overrides and does not overwrite separate project-local Skills. Existing `<harnessRoot>/ty-context-managed/override_skills/*.md` files should be migrated into standalone project-local Skills before running `sync`.
379
430
 
380
- Do not customize the package-managed Harness upgrade Skill directly. Project-specific upgrade facts belong in `project_context/**`; recurring project-local procedures belong in separate project-local Skills.
431
+ Do not customize the package-managed Surface Contract, Harness upgrade or plan acceptance checklist Skills directly. Project-specific surface responsibilities, upgrade facts and acceptance semantics belong in `project_context/**`; recurring project-local procedures belong in separate project-local Skills.
381
432
 
382
433
  ## Sync And Upgrade Boundary
383
434
 
384
435
  `sync` is intentionally narrow. It refreshes managed files and never generates project semantics. `sync` does not run migrations; if it detects `safe_pending`, `manual_required` or `blocked` migration work, it refuses to write and points the user to `upgrade`.
385
436
 
386
- After updating the package, run `sdlc-harness upgrade`. Use `sync` only when release notes say the update is `sync-only`.
437
+ After updating the package, run `ty-context upgrade`. Use `sync` only when release notes say the update is `sync-only`.
387
438
 
388
439
  `upgrade` first builds an upgrade plan. If `blocked` items exist, it prints the plan, runs diagnostics and exits non-zero before migrations or internal `sync`. Without blockers, it applies only `safe_pending` migrations, then runs `sync` and `doctor`. If `manual_required` follow-up or diagnostics remain, the command exits non-zero and prints follow-up. `upgrade --check` performs the same planning step without writing files; `upgrade --check --json` is intended for release checks and CI.
389
440
 
@@ -391,9 +442,9 @@ Release update modes:
391
442
 
392
443
  | Update mode | What to run | Meaning |
393
444
  |---|---|---|
394
- | `sync-only` | `sdlc-harness sync` | The release changes only package-managed assets. No migrations are required. |
395
- | `upgrade-required` | `sdlc-harness upgrade` | The release includes safe mechanical migrations and managed asset refresh. |
396
- | `manual-required` | `sdlc-harness upgrade`, then manual follow-up | The release includes items that cannot be mechanically changed without user intent. |
445
+ | `sync-only` | `ty-context sync` | The release changes only package-managed assets. No migrations are required. |
446
+ | `upgrade-required` | `ty-context upgrade` | The release includes safe mechanical migrations and managed asset refresh. |
447
+ | `manual-required` | `ty-context upgrade`, then manual follow-up | The release includes items that cannot be mechanically changed without user intent. |
397
448
 
398
449
  Migration statuses:
399
450
 
@@ -410,31 +461,33 @@ Examples:
410
461
  - `project_context/areas/main/verification.md` can be registered as `verification` by path convention.
411
462
  - `project_context/areas/payment/api.md` without a manifest role is `manual_required`; the Harness does not guess whether it is an area, contract, foundation or implementation index.
412
463
  - If the target already exists, the migration is `blocked`; `upgrade` stops before migrations or `sync`, and no file is overwritten.
464
+ - Projects installed before the rename from `sdlc-harness` may contain `package.json#sdlcHarness`, `sdlc-harness.config.json`, `<harnessRoot>/pjsdlc_managed/**`, `sdlc-harness.mk` or `pjsdlc:sdlc-harness` managed markers. `upgrade --check --json` reports these under `legacy-sdlc-harness-rename`; safe cases copy canonical `tyContext` / `ty-context.config.json` and refresh managed paths, while root conflicts, old override skills, unknown old managed content and target conflicts are `manual_required` or `blocked`.
413
465
 
414
466
  The former migration command has been removed because existing users have completed that migration path.
415
467
 
416
468
  ## Common Commands
417
469
 
418
470
  ```sh
419
- npx --yes --package project-tiny-context-harness@latest sdlc-harness init
420
- npx --yes --package project-tiny-context-harness@latest sdlc-harness init --adopt
421
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --all
422
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --full
423
- npx --yes --package project-tiny-context-harness@latest sdlc-harness export-context --code
424
- make sdlc-check-modularity
425
- npx --yes --package project-tiny-context-harness@latest sdlc-harness check-modularity --touched
426
- make sdlc-sync
427
- make sdlc-upgrade
428
- npx --yes --package project-tiny-context-harness@latest sdlc-harness upgrade --check
429
- npx --yes --package project-tiny-context-harness@latest sdlc-harness upgrade --check --json
430
- npx --yes --package project-tiny-context-harness@latest sdlc-harness validate-context
431
- npx --yes --package project-tiny-context-harness@latest sdlc-harness doctor
432
- make sdlc-doctor
433
- make validate-context
434
- make validate-harness
435
- ```
436
-
437
- `make validate-harness` is a compatibility alias for `validate-context` in vNext projects.
471
+ npx --yes --package project-tiny-context-harness@latest ty-context init
472
+ npx --yes --package project-tiny-context-harness@latest ty-context init --adopt
473
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --all
474
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --full
475
+ npx --yes --package project-tiny-context-harness@latest ty-context export-context --code
476
+ make ty-context-check-modularity
477
+ npx --yes --package project-tiny-context-harness@latest ty-context check-modularity --touched
478
+ make ty-context-sync
479
+ make ty-context-upgrade
480
+ npx --yes --package project-tiny-context-harness@latest ty-context upgrade --check
481
+ npx --yes --package project-tiny-context-harness@latest ty-context upgrade --check --json
482
+ npx --yes --package project-tiny-context-harness@latest ty-context validate-context
483
+ npx --yes --package project-tiny-context-harness@latest ty-context doctor
484
+ make ty-context-doctor
485
+ make validate-context
486
+ make validate-code-modularity
487
+ make validate-harness
488
+ ```
489
+
490
+ `make validate-harness` runs `validate-context` and the hard touched-source modularity gate.
438
491
 
439
492
  ## Current Boundary
440
493