@glrs-dev/harness-plugin-opencode 0.2.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/CHANGELOG.md +720 -0
- package/LICENSE +21 -0
- package/README.md +353 -0
- package/SECURITY.md +89 -0
- package/dist/agents/prompts/agents-md-writer.md +89 -0
- package/dist/agents/prompts/architecture-advisor.md +46 -0
- package/dist/agents/prompts/build.md +93 -0
- package/dist/agents/prompts/code-searcher.md +54 -0
- package/dist/agents/prompts/docs-maintainer.md +128 -0
- package/dist/agents/prompts/gap-analyzer.md +44 -0
- package/dist/agents/prompts/lib-reader.md +39 -0
- package/dist/agents/prompts/pilot-builder.md +107 -0
- package/dist/agents/prompts/pilot-planner.md +153 -0
- package/dist/agents/prompts/plan-reviewer.md +49 -0
- package/dist/agents/prompts/plan.md +144 -0
- package/dist/agents/prompts/prime.md +374 -0
- package/dist/agents/prompts/qa-reviewer.md +68 -0
- package/dist/agents/prompts/qa-thorough.md +63 -0
- package/dist/agents/prompts/research.md +138 -0
- package/dist/agents/shared/index.ts +26 -0
- package/dist/agents/shared/workflow-mechanics.md +32 -0
- package/dist/bin/memory-mcp-launcher.sh +145 -0
- package/dist/bin/plan-check.sh +255 -0
- package/dist/chunk-VJUETC6A.js +205 -0
- package/dist/chunk-VVMP6QWS.js +731 -0
- package/dist/chunk-XCZ3NOXR.js +703 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +5096 -0
- package/dist/commands/prompts/autopilot.md +96 -0
- package/dist/commands/prompts/costs.md +94 -0
- package/dist/commands/prompts/fresh.md +382 -0
- package/dist/commands/prompts/init-deep.md +196 -0
- package/dist/commands/prompts/research.md +27 -0
- package/dist/commands/prompts/review.md +96 -0
- package/dist/commands/prompts/ship.md +104 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +2092 -0
- package/dist/install-4EYR56OR.js +9 -0
- package/dist/skills/agent-estimation/SKILL.md +159 -0
- package/dist/skills/paths.ts +18 -0
- package/dist/skills/pilot-planning/SKILL.md +49 -0
- package/dist/skills/pilot-planning/rules/dag-shape.md +47 -0
- package/dist/skills/pilot-planning/rules/decomposition.md +36 -0
- package/dist/skills/pilot-planning/rules/first-principles.md +29 -0
- package/dist/skills/pilot-planning/rules/milestones.md +57 -0
- package/dist/skills/pilot-planning/rules/self-review.md +46 -0
- package/dist/skills/pilot-planning/rules/task-context.md +47 -0
- package/dist/skills/pilot-planning/rules/touches-scope.md +47 -0
- package/dist/skills/pilot-planning/rules/verify-design.md +53 -0
- package/dist/skills/research/SKILL.md +350 -0
- package/dist/skills/research-auto/SKILL.md +283 -0
- package/dist/skills/research-local/SKILL.md +268 -0
- package/dist/skills/research-web/SKILL.md +119 -0
- package/dist/skills/review-plan/SKILL.md +32 -0
- package/dist/skills/vercel-composition-patterns/AGENTS.md +946 -0
- package/dist/skills/vercel-composition-patterns/README.md +60 -0
- package/dist/skills/vercel-composition-patterns/SKILL.md +89 -0
- package/dist/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
- package/dist/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
- package/dist/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
- package/dist/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
- package/dist/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
- package/dist/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
- package/dist/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
- package/dist/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
- package/dist/skills/vercel-react-best-practices/AGENTS.md +2975 -0
- package/dist/skills/vercel-react-best-practices/README.md +123 -0
- package/dist/skills/vercel-react-best-practices/SKILL.md +137 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/dist/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/dist/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
- package/dist/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/skills/web-design-guidelines/SKILL.md +39 -0
- package/package.json +70 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Minimize Serialization at RSC Boundaries
|
|
3
|
+
impact: HIGH
|
|
4
|
+
impactDescription: reduces data transfer size
|
|
5
|
+
tags: server, rsc, serialization, props
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Minimize Serialization at RSC Boundaries
|
|
9
|
+
|
|
10
|
+
The React Server/Client boundary serializes all object properties into strings and embeds them in the HTML response and subsequent RSC requests. This serialized data directly impacts page weight and load time, so **size matters a lot**. Only pass fields that the client actually uses.
|
|
11
|
+
|
|
12
|
+
**Incorrect (serializes all 50 fields):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
async function Page() {
|
|
16
|
+
const user = await fetchUser() // 50 fields
|
|
17
|
+
return <Profile user={user} />
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
'use client'
|
|
21
|
+
function Profile({ user }: { user: User }) {
|
|
22
|
+
return <div>{user.name}</div> // uses 1 field
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Correct (serializes only 1 field):**
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
async function Page() {
|
|
30
|
+
const user = await fetchUser()
|
|
31
|
+
return <Profile name={user.name} />
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
'use client'
|
|
35
|
+
function Profile({ name }: { name: string }) {
|
|
36
|
+
return <div>{name}</div>
|
|
37
|
+
}
|
|
38
|
+
```
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-design-guidelines
|
|
3
|
+
description: Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
|
|
4
|
+
metadata:
|
|
5
|
+
author: vercel
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
argument-hint: <file-or-pattern>
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Interface Guidelines
|
|
11
|
+
|
|
12
|
+
Review files for compliance with Web Interface Guidelines.
|
|
13
|
+
|
|
14
|
+
## How It Works
|
|
15
|
+
|
|
16
|
+
1. Fetch the latest guidelines from the source URL below
|
|
17
|
+
2. Read the specified files (or prompt user for files/pattern)
|
|
18
|
+
3. Check against all rules in the fetched guidelines
|
|
19
|
+
4. Output findings in the terse `file:line` format
|
|
20
|
+
|
|
21
|
+
## Guidelines Source
|
|
22
|
+
|
|
23
|
+
Fetch fresh guidelines before each review:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
https://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
When a user provides a file or pattern argument:
|
|
34
|
+
1. Fetch guidelines from the source URL above
|
|
35
|
+
2. Read the specified files
|
|
36
|
+
3. Apply all rules from the fetched guidelines
|
|
37
|
+
4. Output findings using the format specified in the guidelines
|
|
38
|
+
|
|
39
|
+
If no files specified, ask the user which files to review.
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@glrs-dev/harness-plugin-opencode",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Opinionated OpenCode agent harness — PRIME, plan, build, QA, skills, MCP wiring, hashline editing.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.mjs",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"bin": {
|
|
10
|
+
"glrs-oc": "dist/cli.js",
|
|
11
|
+
"harness-opencode": "dist/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"CHANGELOG.md",
|
|
16
|
+
"SECURITY.md"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public",
|
|
20
|
+
"provenance": true
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsup",
|
|
24
|
+
"typecheck": "tsc --noEmit",
|
|
25
|
+
"test": "bun test",
|
|
26
|
+
"lint": "echo 'no linter configured yet'"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@opencode-ai/plugin": "^1.14",
|
|
30
|
+
"@opencode-ai/sdk": "^1.14"
|
|
31
|
+
},
|
|
32
|
+
"devDependencies": {
|
|
33
|
+
"@opencode-ai/plugin": "^1.14.19",
|
|
34
|
+
"@opencode-ai/sdk": "^1.14.19",
|
|
35
|
+
"@types/bun": "latest",
|
|
36
|
+
"@types/node": "^22",
|
|
37
|
+
"@types/picomatch": "^4.0.3",
|
|
38
|
+
"tsup": "^8",
|
|
39
|
+
"typescript": "^5"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"opencode",
|
|
43
|
+
"plugin",
|
|
44
|
+
"agent",
|
|
45
|
+
"harness",
|
|
46
|
+
"glorious",
|
|
47
|
+
"glrs"
|
|
48
|
+
],
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"engines": {
|
|
51
|
+
"bun": ">=1.2.0"
|
|
52
|
+
},
|
|
53
|
+
"repository": {
|
|
54
|
+
"type": "git",
|
|
55
|
+
"url": "git+https://github.com/iceglober/glrs.git",
|
|
56
|
+
"directory": "packages/harness-opencode"
|
|
57
|
+
},
|
|
58
|
+
"homepage": "https://glrs.dev/harness-opencode",
|
|
59
|
+
"bugs": {
|
|
60
|
+
"url": "https://github.com/iceglober/glrs/issues"
|
|
61
|
+
},
|
|
62
|
+
"dependencies": {
|
|
63
|
+
"@inquirer/prompts": "^8.4.2",
|
|
64
|
+
"cmd-ts": "^0.15.0",
|
|
65
|
+
"picomatch": "^4.0.4",
|
|
66
|
+
"ulid": "^3.0.2",
|
|
67
|
+
"yaml": "^2.8.3",
|
|
68
|
+
"zod": "4.1.8"
|
|
69
|
+
}
|
|
70
|
+
}
|