Skip to content

Conversation

@taras
Copy link
Member

@taras taras commented Feb 12, 2026

Motivation

With thefrontside/effectionx#151 merged, all @effectionx/* packages now have concise description fields in their package.json files. These descriptions are written specifically for npm search and AI agent discovery.

The current website reads descriptions from README files, parsing them through a rehype pipeline that extracts the first paragraph. This produces verbose, 200-character excerpts that aren't ideal for the /llms.txt route or package listings.

Approach

Update the package abstraction to prefer package.json description over README-inferred description:

  1. Add description to schemas:

    • PackageJsonSchema in www/lib/package/node.ts
    • PackageManifest interface in www/lib/package/types.ts
  2. Update getManifest() to include description in returned manifest

  3. Update getDescription() in both node.ts and deno.ts to:

    • Check manifest description first
    • Fall back to README-inferred description when not present

This ensures the /llms.txt route generates concise, agent-friendly descriptions like:

- [@effectionx/process](https://frontside.com/effection/x/process): Spawn and manage child processes with structured concurrency
- [@effectionx/websocket](https://frontside.com/effection/x/websocket): WebSocket client with stream-based message handling and automatic cleanup

Instead of verbose paragraph excerpts.

Generate machine-readable index of EffectionX packages using the
llmstxt.org standard. The route:
- Uses useWorkspaces() to enumerate all @effectionx/* packages
- Extracts name and description from each package
- Returns plain text with proper Content-Type header

Also updates HTML link href and footer to point to /llms.txt instead
of /assets/llms.txt (static file kept as fallback).
Update the package abstraction to read description from package.json
and prefer it over README-inferred descriptions. This enables the
llms.txt route to use concise, agent-friendly descriptions from
npm packages.

Changes:
- Add description field to PackageJsonSchema (node.ts)
- Add description field to PackageManifest interface (types.ts)
- Update getDescription() in both node.ts and deno.ts to prefer
  manifest description, falling back to README when not present

Works with thefrontside/effectionx#151 which adds description fields
to all @effectionx/* packages.
@pkg-pr-new
Copy link

pkg-pr-new bot commented Feb 12, 2026

Open in StackBlitz

npm i https://pkg.pr.new/thefrontside/effection@1107

commit: ca6ba97

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