Skip to content

Drop the unused capability-gap skill section#6

Merged
rickylabs merged 1 commit into
feat/package-qualityfrom
fix/skills-drop-capability-gap
Jun 5, 2026
Merged

Drop the unused capability-gap skill section#6
rickylabs merged 1 commit into
feat/package-qualityfrom
fix/skills-drop-capability-gap

Conversation

@rickylabs

Copy link
Copy Markdown
Owner

Per maintainer decision, the "What NetScript doesn't do yet" section (D4 — merged as draft, pending approval in #5) is not being adopted.

This removes it from all five skills (netscript-doctrine, netscript-harness, jsr-audit, deno-fresh, netscript-standards) and renumbers the skill-shape docs (DEVELOPING.md, skills/README.md) from a 10- to a 9-section shape.

  • 7 files changed, +5 / −90 (mostly deletions)
  • deno fmt clean; no What NetScript do… remnants remain
  • No code or package surfaces touched

Per maintainer decision, the 'What NetScript doesn't do yet' section (D4, merged as draft pending approval in #5) is not adopted. Remove it from all five skills and renumber the skill-shape docs (DEVELOPING.md, skills/README.md) from a 10- to a 9-section shape.
@rickylabs
rickylabs merged commit b685346 into feat/package-quality Jun 5, 2026
@augmentcode

augmentcode Bot commented Jun 5, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Removes the draft “What NetScript doesn’t do yet” capability-gap section from the skill documentation.

Changes:

  • Drops the section from five skills (doctrine, harness, jsr-audit, deno-fresh, standards)
  • Renumbers the standard skill shape docs from 10 sections to 9 (DEVELOPING.md, skills/README.md)
Notes: This aligns the docs with the maintainer decision not to adopt that draft section.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@rickylabs
rickylabs deleted the fix/skills-drop-capability-gap branch June 22, 2026 21:59
rickylabs pushed a commit that referenced this pull request Jun 30, 2026
…r (WI-12)

Add a dependency-free page-module scanner (`manifest-page-module.ts`) that
detects `.withRouteContract({...})` (Form A) and `.withRoute(...)` calls using
balanced brace/paren matching, and extracts the inline contract's schema body
(stripping any pre-filled `$route`). Discovery now classifies every page module
as `inline` / `sidecar` / `default` and errors when a module carries both
`.withRoute` and `.withRouteContract`.

Resolves WI open-question #6: the synthesized inline contract lives in the page
module, not in `.generated/routes.ts`. The inline schema body references
page-module-scoped imports (`z`, custom param schemas) that are out of scope in
`.generated/routes.ts`, so re-emitting it there would not type-check. Form A's
typed binding is therefore done in the page module via the restored
`.withRouteContract({ $route, ...body })`, and the `routes.<key>` leaf for a
Form A page is a schema-free `createRouteReference` (same shape as Form C).
Form B continues to bind the imported sidecar contract.

Existing manifest behaviour and tests are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rickylabs added a commit that referenced this pull request Jul 1, 2026
…ge-module route binding (WI-12) (#183)

* docs(wi): add WI-12 - page-module codegen for .withRoute / .withRouteContract

Planning artifact for the WI-12 implementation. The actual code changes
(restored .withRouteContract({...}) builder method, generator AST scan,
Vite plugin page-module rewriting, Form A/B/C algorithm, tests,
migration, README updates) will follow in subsequent commits on this
branch.

Refs: #181, #179

* chore(openhands): record run trace 28474310084-1

* feat(fresh): restore inline .withRouteContract builder method (WI-12)

Add `.withRouteContract({ $route?, pathSchema?, searchSchema? })` back to
`definePage()` as a first-class, type-state-aware builder method. The inline
schema body is bound to the `$route` pattern via
`bindRoutePattern(defineRouteContract({...}), $route)`, producing the same
routed runtime config that `.withRoute(...)` consumes, so the inline (Form A)
and sidecar/default (Form B/C) authoring forms converge on one runtime shape.

The `$route` pattern is normally inserted by the NetScript Vite plugin codegen
pass from the page module path; a missing `$route` throws a clear build error
pointing at the codegen / manual-fill remedy.

Type-state promotion mirrors `.withRoute(...)`: path/search are inferred from
the inline schemas and `THasConfiguredRoute` flips to `true`. The public
`PageBuilder` compat surface gains the matching method signature.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(fresh): scan page modules for inline route contracts in generator (WI-12)

Add a dependency-free page-module scanner (`manifest-page-module.ts`) that
detects `.withRouteContract({...})` (Form A) and `.withRoute(...)` calls using
balanced brace/paren matching, and extracts the inline contract's schema body
(stripping any pre-filled `$route`). Discovery now classifies every page module
as `inline` / `sidecar` / `default` and errors when a module carries both
`.withRoute` and `.withRouteContract`.

Resolves WI open-question #6: the synthesized inline contract lives in the page
module, not in `.generated/routes.ts`. The inline schema body references
page-module-scoped imports (`z`, custom param schemas) that are out of scope in
`.generated/routes.ts`, so re-emitting it there would not type-check. Form A's
typed binding is therefore done in the page module via the restored
`.withRouteContract({ $route, ...body })`, and the `routes.<key>` leaf for a
Form A page is a schema-free `createRouteReference` (same shape as Form C).
Form B continues to bind the imported sidecar contract.

Existing manifest behaviour and tests are unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(fresh): page-module route-binding codegen + pageModuleRouteBinding option (WI-12)

Implement the WI-12 page-module rewriter and wire it into the Vite plugin,
covering commits 3-5 of the plan (rewriting, Form C default, conflict
resolution) as one coherent pass so each is green-per-commit.

- `computePageModuleRewrite` (manifest-page-module.ts): idempotent rewriter.
  Form A inserts `$route: routePatterns.<key>.$route` as the first field of the
  inline `.withRouteContract({...})` and ensures the `routePatterns` import.
  Form B/C insert `.withRoute(routes.<key>.$route)` immediately after
  `definePage()` and ensure the `routes` import. Re-running produces no diff.
- `writeNetScriptPageModuleBindingsSync` (manifest.ts): disk orchestrator that
  rewrites each discovered page module and collects build warnings.
- Conflict resolution: inline + sidecar emits the "inline takes precedence"
  warning (sidecar left in place); `.withRoute` + `.withRouteContract` in one
  module is a build error raised during discovery.
- Vite plugin: new top-level `pageModuleRouteBinding` option (default `true`).
  The binding pass runs after the manifest writer on init, buildStart, and the
  debounced watch handler; warnings surface via `console.warn`. Setting it to
  `false` skips all page-module rewriting and leaves hand-written bindings.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* test(fresh): cover WI-12 inline contract, AST discovery, rewriting, conflicts

Add unit tests for the WI-12 surface:

- builder.test.tsx: `.withRouteContract({ pathSchema })` / `({ searchSchema })`
  type-state promotion + runtime href binding, and the clear error when `$route`
  is missing.
- manifest.test.ts: inline-contract discovery (Form A positive), non-page helper
  with `.withRouteContract` ignored (negative), and the build error when a page
  has both `.withRoute` and `.withRouteContract`.
- manifest-page-module.test.ts (new): scanner body/`$route` extraction,
  `.withRoute` vs `.withRouteContract` discrimination, Form A/B/C rewriting,
  idempotency across forms, and the inline+sidecar precedence warning.
- vite.test.ts: `pageModuleRouteBinding` default rewrites page modules (with a
  second-pass idempotency assertion) and `false` leaves them untouched while
  still writing the generated routes module.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(fresh): document Form A/B/C codegen route binding (WI-12)

Update the package README and the web-layer builders guide so the
codegen-owned route-binding flow is the primary documented path:

- README Usage now leads with Form A (inline `.withRouteContract`), Form B
  (sidecar), and Form C (default), and reframes the manual `bindRoutePattern`
  + `.withRoute` example as the under-the-hood / opt-out form. This corrects the
  long-standing drift where the manual form was documented as primary.
- builders.md gains a `.withRouteContract({...})` row in the methods table and a
  "Codegen-owned route binding" subsection covering the three forms, the
  inline+sidecar warning, the dual-binding error, and the
  `pageModuleRouteBinding: false` opt-out.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* docs(wi): record WI-12 implementation status and deferred CLI migration

Document the green implementation status (commits 1-6, 8), the end-to-end
typecheck proof, the `paths?` field omission rationale, and the deliberate
deferral of the live CLI scaffold-template migration (commit 7) — the templates
bind through the curated `@app/router.ts` with hand-authored route references
that do not all map to the generated `routes` tree, and the proving gate is the
toolchain-heavy scaffold.runtime E2E lane that cannot run in this environment.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(openhands): record run trace 28478153536-1

* chore(openhands): record run trace 28483118420-1

---------

Co-authored-by: OpenHands Bot <openhands@all-hands.dev>
Co-authored-by: Eric Chautems <eric.chautems@eisberg.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
rickylabs added a commit that referenced this pull request Jul 11, 2026
…ries polish (#684)

* docs(storefront): add typed storefront UI chapter, renumber deploy (proposal #6)

Add 06-storefront-ui.md showcasing the frontend typed spine the storefront
series never touched: a bound route contract (createRouteReference /
defineRouteContract / bindRoutePattern), a per-service createServiceClient +
createServiceQueryUtils clients module, and a Fresh island reading with
useIslandQuery and beginning checkout with useIslandMutation. Deploy renumbered
06 -> 07; prev/next/learningPath/xref navigation rewired across the series.

Every API grounded via deno doc + two scratch deno checks against packages/sdk
and packages/fresh; the island uses contract-derived keys with typed client
calls (the SDK queryOptions/mutationOptions result is not raw-spreadable into
the zero-arg island hooks).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

* docs(storefront): index differentiator lede, deploy one-command framing, PORT note

- index.md: name the differentiator the series proves + a 'what this replaces'
  contrast sentence (proposal #17).
- 02-catalog-service.md: note that Aspire injects PORT and services.<name>.port
  in netscript.config.ts is the typed source of truth (proposal #7).
- 07-deploy.md one-command scaffold-to-Aspire framing shipped with commit 1;
  worklog records the full run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VifzAytcxBk5odEMaCXihM

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant