@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.
Files changed (128) hide show
  1. package/CHANGELOG.md +720 -0
  2. package/LICENSE +21 -0
  3. package/README.md +353 -0
  4. package/SECURITY.md +89 -0
  5. package/dist/agents/prompts/agents-md-writer.md +89 -0
  6. package/dist/agents/prompts/architecture-advisor.md +46 -0
  7. package/dist/agents/prompts/build.md +93 -0
  8. package/dist/agents/prompts/code-searcher.md +54 -0
  9. package/dist/agents/prompts/docs-maintainer.md +128 -0
  10. package/dist/agents/prompts/gap-analyzer.md +44 -0
  11. package/dist/agents/prompts/lib-reader.md +39 -0
  12. package/dist/agents/prompts/pilot-builder.md +107 -0
  13. package/dist/agents/prompts/pilot-planner.md +153 -0
  14. package/dist/agents/prompts/plan-reviewer.md +49 -0
  15. package/dist/agents/prompts/plan.md +144 -0
  16. package/dist/agents/prompts/prime.md +374 -0
  17. package/dist/agents/prompts/qa-reviewer.md +68 -0
  18. package/dist/agents/prompts/qa-thorough.md +63 -0
  19. package/dist/agents/prompts/research.md +138 -0
  20. package/dist/agents/shared/index.ts +26 -0
  21. package/dist/agents/shared/workflow-mechanics.md +32 -0
  22. package/dist/bin/memory-mcp-launcher.sh +145 -0
  23. package/dist/bin/plan-check.sh +255 -0
  24. package/dist/chunk-VJUETC6A.js +205 -0
  25. package/dist/chunk-VVMP6QWS.js +731 -0
  26. package/dist/chunk-XCZ3NOXR.js +703 -0
  27. package/dist/cli.d.ts +1 -0
  28. package/dist/cli.js +5096 -0
  29. package/dist/commands/prompts/autopilot.md +96 -0
  30. package/dist/commands/prompts/costs.md +94 -0
  31. package/dist/commands/prompts/fresh.md +382 -0
  32. package/dist/commands/prompts/init-deep.md +196 -0
  33. package/dist/commands/prompts/research.md +27 -0
  34. package/dist/commands/prompts/review.md +96 -0
  35. package/dist/commands/prompts/ship.md +104 -0
  36. package/dist/index.d.ts +21 -0
  37. package/dist/index.js +2092 -0
  38. package/dist/install-4EYR56OR.js +9 -0
  39. package/dist/skills/agent-estimation/SKILL.md +159 -0
  40. package/dist/skills/paths.ts +18 -0
  41. package/dist/skills/pilot-planning/SKILL.md +49 -0
  42. package/dist/skills/pilot-planning/rules/dag-shape.md +47 -0
  43. package/dist/skills/pilot-planning/rules/decomposition.md +36 -0
  44. package/dist/skills/pilot-planning/rules/first-principles.md +29 -0
  45. package/dist/skills/pilot-planning/rules/milestones.md +57 -0
  46. package/dist/skills/pilot-planning/rules/self-review.md +46 -0
  47. package/dist/skills/pilot-planning/rules/task-context.md +47 -0
  48. package/dist/skills/pilot-planning/rules/touches-scope.md +47 -0
  49. package/dist/skills/pilot-planning/rules/verify-design.md +53 -0
  50. package/dist/skills/research/SKILL.md +350 -0
  51. package/dist/skills/research-auto/SKILL.md +283 -0
  52. package/dist/skills/research-local/SKILL.md +268 -0
  53. package/dist/skills/research-web/SKILL.md +119 -0
  54. package/dist/skills/review-plan/SKILL.md +32 -0
  55. package/dist/skills/vercel-composition-patterns/AGENTS.md +946 -0
  56. package/dist/skills/vercel-composition-patterns/README.md +60 -0
  57. package/dist/skills/vercel-composition-patterns/SKILL.md +89 -0
  58. package/dist/skills/vercel-composition-patterns/rules/architecture-avoid-boolean-props.md +100 -0
  59. package/dist/skills/vercel-composition-patterns/rules/architecture-compound-components.md +112 -0
  60. package/dist/skills/vercel-composition-patterns/rules/patterns-children-over-render-props.md +87 -0
  61. package/dist/skills/vercel-composition-patterns/rules/patterns-explicit-variants.md +100 -0
  62. package/dist/skills/vercel-composition-patterns/rules/react19-no-forwardref.md +42 -0
  63. package/dist/skills/vercel-composition-patterns/rules/state-context-interface.md +191 -0
  64. package/dist/skills/vercel-composition-patterns/rules/state-decouple-implementation.md +113 -0
  65. package/dist/skills/vercel-composition-patterns/rules/state-lift-state.md +125 -0
  66. package/dist/skills/vercel-react-best-practices/AGENTS.md +2975 -0
  67. package/dist/skills/vercel-react-best-practices/README.md +123 -0
  68. package/dist/skills/vercel-react-best-practices/SKILL.md +137 -0
  69. package/dist/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
  70. package/dist/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
  71. package/dist/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
  72. package/dist/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
  73. package/dist/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
  74. package/dist/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
  75. package/dist/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
  76. package/dist/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
  77. package/dist/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
  78. package/dist/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
  79. package/dist/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
  80. package/dist/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
  81. package/dist/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
  82. package/dist/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
  83. package/dist/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
  84. package/dist/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
  85. package/dist/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
  86. package/dist/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
  87. package/dist/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
  88. package/dist/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
  89. package/dist/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
  90. package/dist/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
  91. package/dist/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
  92. package/dist/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
  93. package/dist/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
  94. package/dist/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
  95. package/dist/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
  96. package/dist/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
  97. package/dist/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
  98. package/dist/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
  99. package/dist/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
  100. package/dist/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
  101. package/dist/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
  102. package/dist/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
  103. package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
  104. package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
  105. package/dist/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
  106. package/dist/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
  107. package/dist/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
  108. package/dist/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
  109. package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
  110. package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
  111. package/dist/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
  112. package/dist/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
  113. package/dist/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
  114. package/dist/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
  115. package/dist/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
  116. package/dist/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
  117. package/dist/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
  118. package/dist/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
  119. package/dist/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
  120. package/dist/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
  121. package/dist/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
  122. package/dist/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
  123. package/dist/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
  124. package/dist/skills/vercel-react-best-practices/rules/server-hoist-static-io.md +142 -0
  125. package/dist/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
  126. package/dist/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
  127. package/dist/skills/web-design-guidelines/SKILL.md +39 -0
  128. 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
+ }