p-dev-harness 0.3.0 → 0.3.1
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/README.md +16 -5
- package/dist/github/client.d.ts +88 -1
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +98 -7
- package/dist/github/client.js.map +1 -1
- package/dist/github/rate-limit-metadata.d.ts +16 -0
- package/dist/github/rate-limit-metadata.d.ts.map +1 -0
- package/dist/github/rate-limit-metadata.js +73 -0
- package/dist/github/rate-limit-metadata.js.map +1 -0
- package/dist/p-dev/git-object-plumbing.d.ts +19 -0
- package/dist/p-dev/git-object-plumbing.d.ts.map +1 -0
- package/dist/p-dev/git-object-plumbing.js +196 -0
- package/dist/p-dev/git-object-plumbing.js.map +1 -0
- package/dist/p-dev/package-paths.d.ts +1 -0
- package/dist/p-dev/package-paths.d.ts.map +1 -1
- package/dist/p-dev/package-paths.js +3 -0
- package/dist/p-dev/package-paths.js.map +1 -1
- package/dist/p-dev/workspace-snapshot-digest.d.ts +12 -0
- package/dist/p-dev/workspace-snapshot-digest.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-digest.js +34 -0
- package/dist/p-dev/workspace-snapshot-digest.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-generator.d.ts +15 -0
- package/dist/p-dev/workspace-snapshot-generator.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-generator.js +69 -0
- package/dist/p-dev/workspace-snapshot-generator.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-git.d.ts +26 -0
- package/dist/p-dev/workspace-snapshot-git.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-git.js +151 -0
- package/dist/p-dev/workspace-snapshot-git.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-manifest.d.ts +18 -0
- package/dist/p-dev/workspace-snapshot-manifest.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-manifest.js +292 -0
- package/dist/p-dev/workspace-snapshot-manifest.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-policy.d.ts +16 -0
- package/dist/p-dev/workspace-snapshot-policy.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-policy.js +168 -0
- package/dist/p-dev/workspace-snapshot-policy.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-types.d.ts +54 -0
- package/dist/p-dev/workspace-snapshot-types.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-types.js +7 -0
- package/dist/p-dev/workspace-snapshot-types.js.map +1 -0
- package/dist/p-dev/workspace-snapshot-validation.d.ts +17 -0
- package/dist/p-dev/workspace-snapshot-validation.d.ts.map +1 -0
- package/dist/p-dev/workspace-snapshot-validation.js +115 -0
- package/dist/p-dev/workspace-snapshot-validation.js.map +1 -0
- package/dist/setup/github-remote-provider.d.ts +129 -0
- package/dist/setup/github-remote-provider.d.ts.map +1 -1
- package/dist/setup/github-remote-provider.js +214 -3
- package/dist/setup/github-remote-provider.js.map +1 -1
- package/dist/setup/github-remote-setup-live.d.ts +46 -1
- package/dist/setup/github-remote-setup-live.d.ts.map +1 -1
- package/dist/setup/github-remote-setup-live.js +121 -4
- package/dist/setup/github-remote-setup-live.js.map +1 -1
- package/dist/setup/github-secret-encryption.d.ts.map +1 -1
- package/dist/setup/github-secret-encryption.js +3 -1
- package/dist/setup/github-secret-encryption.js.map +1 -1
- package/dist/setup/github-upload-rate-limit-gate.d.ts +17 -0
- package/dist/setup/github-upload-rate-limit-gate.d.ts.map +1 -0
- package/dist/setup/github-upload-rate-limit-gate.js +42 -0
- package/dist/setup/github-upload-rate-limit-gate.js.map +1 -0
- package/dist/setup/harness-managed-repo-marker.d.ts +28 -1
- package/dist/setup/harness-managed-repo-marker.d.ts.map +1 -1
- package/dist/setup/harness-managed-repo-marker.js +165 -2
- package/dist/setup/harness-managed-repo-marker.js.map +1 -1
- package/dist/setup/harness-provisioning-context.d.ts +14 -12
- package/dist/setup/harness-provisioning-context.d.ts.map +1 -1
- package/dist/setup/harness-provisioning-context.js +54 -42
- package/dist/setup/harness-provisioning-context.js.map +1 -1
- package/dist/setup/harness-provisioning-pending-state.d.ts +33 -22
- package/dist/setup/harness-provisioning-pending-state.d.ts.map +1 -1
- package/dist/setup/harness-provisioning-pending-state.js +49 -30
- package/dist/setup/harness-provisioning-pending-state.js.map +1 -1
- package/dist/setup/harness-repo-provisioning.d.ts +10 -5
- package/dist/setup/harness-repo-provisioning.d.ts.map +1 -1
- package/dist/setup/harness-repo-provisioning.js +403 -335
- package/dist/setup/harness-repo-provisioning.js.map +1 -1
- package/dist/setup/harness-snapshot-provisioning-helpers.d.ts +21 -0
- package/dist/setup/harness-snapshot-provisioning-helpers.d.ts.map +1 -0
- package/dist/setup/harness-snapshot-provisioning-helpers.js +55 -0
- package/dist/setup/harness-snapshot-provisioning-helpers.js.map +1 -0
- package/dist/setup/harness-snapshot-provisioning.d.ts +111 -0
- package/dist/setup/harness-snapshot-provisioning.d.ts.map +1 -0
- package/dist/setup/harness-snapshot-provisioning.js +684 -0
- package/dist/setup/harness-snapshot-provisioning.js.map +1 -0
- package/dist/setup/harness-workspace-snapshot-loader.d.ts +15 -0
- package/dist/setup/harness-workspace-snapshot-loader.d.ts.map +1 -0
- package/dist/setup/harness-workspace-snapshot-loader.js +80 -0
- package/dist/setup/harness-workspace-snapshot-loader.js.map +1 -0
- package/dist/setup/mock-git-repository-store.d.ts +43 -0
- package/dist/setup/mock-git-repository-store.d.ts.map +1 -0
- package/dist/setup/mock-git-repository-store.js +232 -0
- package/dist/setup/mock-git-repository-store.js.map +1 -0
- package/gui/.next/BUILD_ID +1 -1
- package/gui/.next/app-build-manifest.json +49 -49
- package/gui/.next/app-path-routes-manifest.json +15 -15
- package/gui/.next/build-manifest.json +2 -2
- package/gui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/_not-found.html +1 -1
- package/gui/.next/server/app/_not-found.rsc +2 -2
- package/gui/.next/server/app/api/setup/apply-connect-services/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-connect-services/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-connect-services/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-harness-secrets/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-linear-setup/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-local-files/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-local-files/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-local-files/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/apply-vercel-bridge/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/finalize-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/harness-provisioning-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route.js +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/linear-options/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/linear-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/linear-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/linear-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/local-readiness/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/manual-harness-secret-values/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-connect-services/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-repo-provisioning/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-harness-secrets/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-linear-setup/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-local-files/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-local-files/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-local-files/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-target-workflow/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-target-workflow/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-target-workflow/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/preview-vercel-bridge/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/remote-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-options/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-bridge-redeploy-status/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route.js +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/vercel-summary/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route.js +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route.js.nft.json +1 -1
- package/gui/.next/server/app/api/setup/verify-harness-repo/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-service/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/api/setup/verify-target-repo/route_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/index.html +1 -1
- package/gui/.next/server/app/index.rsc +2 -2
- package/gui/.next/server/app/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app/settings/configure/page.js +2 -2
- package/gui/.next/server/app/settings/configure/page.js.nft.json +1 -1
- package/gui/.next/server/app/settings/configure/page_client-reference-manifest.js +1 -1
- package/gui/.next/server/app-paths-manifest.json +15 -15
- package/gui/.next/server/chunks/477.js +2 -2
- package/gui/.next/server/chunks/647.js +82 -0
- package/gui/.next/server/chunks/900.js +1 -1
- package/gui/.next/server/pages/404.html +1 -1
- package/gui/.next/server/pages/500.html +1 -1
- package/gui/.next/static/css/781f3c93b6d7425a.css +3 -0
- package/gui/.next/trace +4 -4
- package/package.json +2 -1
- package/workspace-snapshot/files/.agents/skills/architecture-evolution-audit/SKILL.md +282 -0
- package/workspace-snapshot/files/.agents/skills/code-health-audit/SKILL.md +188 -0
- package/workspace-snapshot/files/.agents/skills/implementation/SKILL.md +279 -0
- package/workspace-snapshot/files/.agents/skills/issue-intake/SKILL.md +163 -0
- package/workspace-snapshot/files/.agents/skills/issue-intake/examples.md +112 -0
- package/workspace-snapshot/files/.agents/skills/planner/SKILL.md +253 -0
- package/workspace-snapshot/files/.agents/skills/security-audit/SKILL.md +270 -0
- package/workspace-snapshot/files/.env.example +37 -0
- package/workspace-snapshot/files/.github/CODEOWNERS +4 -0
- package/workspace-snapshot/files/.github/dependabot.yml +12 -0
- package/workspace-snapshot/files/.github/workflows/ci.yml +32 -0
- package/workspace-snapshot/files/.github/workflows/codeql.yml +35 -0
- package/workspace-snapshot/files/.github/workflows/harness-auto-runner.yml +561 -0
- package/workspace-snapshot/files/.harness/config.example.json +83 -0
- package/workspace-snapshot/files/AGENTS.md +130 -0
- package/workspace-snapshot/files/ARCHITECTURE.md +385 -0
- package/workspace-snapshot/files/CHANGELOG.md +166 -0
- package/workspace-snapshot/files/LICENSE +21 -0
- package/workspace-snapshot/files/README.md +110 -0
- package/workspace-snapshot/files/ROADMAP.md +50 -0
- package/workspace-snapshot/files/api/linear-webhook.ts +41 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-connect-services/route.ts +21 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-harness-repo-provisioning/route.ts +35 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-harness-secrets/route.ts +42 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-linear-setup/route.ts +23 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-local-files/route.ts +42 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-target-workflow/route.ts +49 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/apply-vercel-bridge/route.ts +26 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/finalize-target-workflow/route.ts +32 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/harness-provisioning-summary/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/linear-options/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/linear-summary/route.ts +15 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/local-readiness/route.ts +18 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/manual-harness-secret-values/route.ts +33 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-connect-services/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-harness-repo-provisioning/route.ts +22 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-harness-secrets/route.ts +19 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-linear-setup/route.ts +20 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-local-files/route.ts +17 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-target-workflow/route.ts +25 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/preview-vercel-bridge/route.ts +23 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/remote-summary/route.ts +15 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/summary/route.ts +10 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/vercel-bridge-options/route.ts +29 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/vercel-bridge-redeploy-status/route.ts +22 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/vercel-summary/route.ts +15 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/verify-harness-repo/route.ts +31 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/verify-service/route.ts +41 -0
- package/workspace-snapshot/files/apps/gui/app/api/setup/verify-target-repo/route.ts +33 -0
- package/workspace-snapshot/files/apps/gui/app/layout.tsx +28 -0
- package/workspace-snapshot/files/apps/gui/app/page.tsx +5 -0
- package/workspace-snapshot/files/apps/gui/app/settings/configure/page.tsx +34 -0
- package/workspace-snapshot/files/apps/gui/components/custom/app-shell.tsx +39 -0
- package/workspace-snapshot/files/apps/gui/components/custom/configure-experience.tsx +671 -0
- package/workspace-snapshot/files/apps/gui/components/custom/configure-page-content.tsx +45 -0
- package/workspace-snapshot/files/apps/gui/components/custom/configure-workflow.tsx +1284 -0
- package/workspace-snapshot/files/apps/gui/components/custom/connected-status.tsx +30 -0
- package/workspace-snapshot/files/apps/gui/components/custom/environment-config-form.tsx +400 -0
- package/workspace-snapshot/files/apps/gui/components/custom/first-run-stepper.tsx +199 -0
- package/workspace-snapshot/files/apps/gui/components/custom/github-token-help-disclosure.tsx +142 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-cloud-secrets-card.tsx +993 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-linear-workspace-card.tsx +526 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-local-readiness-card.tsx +132 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-step-transition.tsx +60 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-target-workflow-card.tsx +396 -0
- package/workspace-snapshot/files/apps/gui/components/custom/guided-vercel-bridge-card.tsx +861 -0
- package/workspace-snapshot/files/apps/gui/components/custom/local-write-confirmation.tsx +91 -0
- package/workspace-snapshot/files/apps/gui/components/custom/local-write-preview.tsx +52 -0
- package/workspace-snapshot/files/apps/gui/components/custom/preview-panel.tsx +19 -0
- package/workspace-snapshot/files/apps/gui/components/custom/primary-setup-task-card.tsx +65 -0
- package/workspace-snapshot/files/apps/gui/components/custom/readiness-banner.tsx +91 -0
- package/workspace-snapshot/files/apps/gui/components/custom/remote-action-confirmation.tsx +155 -0
- package/workspace-snapshot/files/apps/gui/components/custom/remote-action-preview.tsx +84 -0
- package/workspace-snapshot/files/apps/gui/components/custom/remote-secret-form.tsx +123 -0
- package/workspace-snapshot/files/apps/gui/components/custom/remote-setup-section.tsx +354 -0
- package/workspace-snapshot/files/apps/gui/components/custom/review-cloud-secrets-disclosure.tsx +59 -0
- package/workspace-snapshot/files/apps/gui/components/custom/review-generated-files-disclosure.tsx +67 -0
- package/workspace-snapshot/files/apps/gui/components/custom/section-card.tsx +33 -0
- package/workspace-snapshot/files/apps/gui/components/custom/service-icons.tsx +30 -0
- package/workspace-snapshot/files/apps/gui/components/custom/setup-apply-result.tsx +52 -0
- package/workspace-snapshot/files/apps/gui/components/custom/setup-checklist.tsx +206 -0
- package/workspace-snapshot/files/apps/gui/components/custom/setup-dashboard.tsx +124 -0
- package/workspace-snapshot/files/apps/gui/components/custom/setup-readonly-sections.tsx +210 -0
- package/workspace-snapshot/files/apps/gui/components/custom/status-badge.tsx +22 -0
- package/workspace-snapshot/files/apps/gui/components/custom/target-repo-config-form.tsx +647 -0
- package/workspace-snapshot/files/apps/gui/components/custom/target-workflow-pr-card.tsx +283 -0
- package/workspace-snapshot/files/apps/gui/components/custom/theme-provider.tsx +11 -0
- package/workspace-snapshot/files/apps/gui/components/custom/theme-toggle.tsx +44 -0
- package/workspace-snapshot/files/apps/gui/components/custom/workflow-install-pending-panel.tsx +116 -0
- package/workspace-snapshot/files/apps/gui/components/ui/badge.tsx +40 -0
- package/workspace-snapshot/files/apps/gui/components/ui/button.tsx +52 -0
- package/workspace-snapshot/files/apps/gui/components/ui/card.tsx +64 -0
- package/workspace-snapshot/files/apps/gui/components/ui/checkbox.tsx +21 -0
- package/workspace-snapshot/files/apps/gui/components/ui/input.tsx +22 -0
- package/workspace-snapshot/files/apps/gui/components/ui/label.tsx +20 -0
- package/workspace-snapshot/files/apps/gui/components/ui/separator.tsx +23 -0
- package/workspace-snapshot/files/apps/gui/components/ui/skeleton.tsx +13 -0
- package/workspace-snapshot/files/apps/gui/components/ui/textarea.tsx +22 -0
- package/workspace-snapshot/files/apps/gui/components.json +21 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/breakpoints.ts +13 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/form.ts +8 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/index.ts +4 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/layout.ts +9 -0
- package/workspace-snapshot/files/apps/gui/lib/constants/spacing.ts +8 -0
- package/workspace-snapshot/files/apps/gui/lib/guided-setup.ts +216 -0
- package/workspace-snapshot/files/apps/gui/lib/setup-json-response.ts +19 -0
- package/workspace-snapshot/files/apps/gui/lib/setup-server.ts +836 -0
- package/workspace-snapshot/files/apps/gui/lib/step6-remote-state.ts +43 -0
- package/workspace-snapshot/files/apps/gui/lib/utils.ts +6 -0
- package/workspace-snapshot/files/apps/gui/lib/vercel-bridge-polling-ui.ts +16 -0
- package/workspace-snapshot/files/apps/gui/lib/verification-state.ts +170 -0
- package/workspace-snapshot/files/apps/gui/next-env.d.ts +6 -0
- package/workspace-snapshot/files/apps/gui/next.config.ts +34 -0
- package/workspace-snapshot/files/apps/gui/postcss.config.mjs +8 -0
- package/workspace-snapshot/files/apps/gui/public/setup/github-token/github-pat-generate-classic.png +0 -0
- package/workspace-snapshot/files/apps/gui/public/setup/github-token/github-pat-generate-new-token.png +0 -0
- package/workspace-snapshot/files/apps/gui/public/setup/github-token/github-pat-verify-email.png +0 -0
- package/workspace-snapshot/files/apps/gui/styles/globals.css +86 -0
- package/workspace-snapshot/files/apps/gui/tsconfig.json +24 -0
- package/workspace-snapshot/files/apps/gui/tweetsodium.d.ts +14 -0
- package/workspace-snapshot/files/docs/architecture/linear-automation-state-machine.md +267 -0
- package/workspace-snapshot/files/docs/decisions/0001-cursor-first-v0.1.md +59 -0
- package/workspace-snapshot/files/docs/decisions/0003-automation-state-machine-and-auto-model-policy.md +65 -0
- package/workspace-snapshot/files/docs/decisions/0004-agent-provider-boundary.md +109 -0
- package/workspace-snapshot/files/docs/design/product-development-harness-gui.md +1024 -0
- package/workspace-snapshot/files/docs/getting-started.md +123 -0
- package/workspace-snapshot/files/docs/gui-local.md +151 -0
- package/workspace-snapshot/files/docs/gui-remote-setup.md +106 -0
- package/workspace-snapshot/files/docs/integration-repair.md +82 -0
- package/workspace-snapshot/files/docs/issue-intake.md +124 -0
- package/workspace-snapshot/files/docs/linear-watcher-setup.md +184 -0
- package/workspace-snapshot/files/docs/milestones/m1-runner-foundation.md +51 -0
- package/workspace-snapshot/files/docs/milestones/m2-planning-phase.md +129 -0
- package/workspace-snapshot/files/docs/milestones/m3-implementation-phase.md +158 -0
- package/workspace-snapshot/files/docs/milestones/m4-handoff-phase.md +122 -0
- package/workspace-snapshot/files/docs/milestones/m5-revision-phase.md +101 -0
- package/workspace-snapshot/files/docs/milestones/m6-merge-phase.md +143 -0
- package/workspace-snapshot/files/docs/milestones/m7-issue-intake.md +72 -0
- package/workspace-snapshot/files/docs/milestones/m8-linear-watcher.md +80 -0
- package/workspace-snapshot/files/docs/npm-packaging-spike.md +52 -0
- package/workspace-snapshot/files/docs/operator-config.md +187 -0
- package/workspace-snapshot/files/docs/p-dev.md +213 -0
- package/workspace-snapshot/files/docs/production-sync-automation.md +176 -0
- package/workspace-snapshot/files/docs/provider-portability.md +131 -0
- package/workspace-snapshot/files/docs/releases/release-process.md +272 -0
- package/workspace-snapshot/files/docs/releases/v0.2.0.md +193 -0
- package/workspace-snapshot/files/docs/releases/v0.3.0.md +188 -0
- package/workspace-snapshot/files/docs/releases/v0.3.1.md +102 -0
- package/workspace-snapshot/files/docs/research/001-manual-run-retrospective.md +64 -0
- package/workspace-snapshot/files/docs/research/002-linear-cursor-integration-smoke-test.md +64 -0
- package/workspace-snapshot/files/docs/research/003-cursor-automation-planning-router-spike.md +104 -0
- package/workspace-snapshot/files/docs/research/README.md +26 -0
- package/workspace-snapshot/files/docs/security.md +190 -0
- package/workspace-snapshot/files/docs/skills/README.md +7 -0
- package/workspace-snapshot/files/docs/skills/skill-architecture.md +197 -0
- package/workspace-snapshot/files/docs/target-repo-branch-setup.md +80 -0
- package/workspace-snapshot/files/evals/README.md +31 -0
- package/workspace-snapshot/files/examples/README.md +32 -0
- package/workspace-snapshot/files/examples/runs/001-target-app-github-link/README.md +49 -0
- package/workspace-snapshot/files/examples/runs/001-target-app-github-link/eval-scorecard.md +63 -0
- package/workspace-snapshot/files/examples/runs/001-target-app-github-link/implementation-plan.md +79 -0
- package/workspace-snapshot/files/examples/runs/001-target-app-github-link/linear-issue.md +74 -0
- package/workspace-snapshot/files/examples/runs/001-target-app-github-link/pr-readiness-report.md +92 -0
- package/workspace-snapshot/files/examples/runs/m5.5-live-sandbox-smoke/README.md +73 -0
- package/workspace-snapshot/files/gpt/issue-intake/custom-gpt-instructions.md +112 -0
- package/workspace-snapshot/files/gpt/issue-intake/knowledge.md +278 -0
- package/workspace-snapshot/files/gpt/issue-intake/setup-guide.md +115 -0
- package/workspace-snapshot/files/gpt/issue-intake/smoke-test.md +119 -0
- package/workspace-snapshot/files/harness.config.json +92 -0
- package/workspace-snapshot/files/harness.config.schema.json +352 -0
- package/workspace-snapshot/files/package-lock.json +3716 -0
- package/workspace-snapshot/files/package.json +60 -0
- package/workspace-snapshot/files/packages/p-dev/LICENSE +21 -0
- package/workspace-snapshot/files/packages/p-dev/README.md +64 -0
- package/workspace-snapshot/files/packages/p-dev/gui.next.config.mjs +13 -0
- package/workspace-snapshot/files/packages/p-dev/package.json +63 -0
- package/workspace-snapshot/files/prompts/issue-intake-chatgpt.md +264 -0
- package/workspace-snapshot/files/scripts/generate-config-schema.ts +16 -0
- package/workspace-snapshot/files/scripts/prepare-p-dev-package.ts +155 -0
- package/workspace-snapshot/files/skills/README.md +7 -0
- package/workspace-snapshot/files/skills/issue-intake/README.md +5 -0
- package/workspace-snapshot/files/src/agents/cursor-provider.ts +109 -0
- package/workspace-snapshot/files/src/agents/index.ts +68 -0
- package/workspace-snapshot/files/src/agents/provider.ts +7 -0
- package/workspace-snapshot/files/src/agents/types.ts +85 -0
- package/workspace-snapshot/files/src/artifacts/events.ts +31 -0
- package/workspace-snapshot/files/src/artifacts/manifest-fields.ts +9 -0
- package/workspace-snapshot/files/src/artifacts/manifest.ts +20 -0
- package/workspace-snapshot/files/src/artifacts/paths.ts +145 -0
- package/workspace-snapshot/files/src/artifacts/redact.ts +50 -0
- package/workspace-snapshot/files/src/artifacts/run-id.ts +4 -0
- package/workspace-snapshot/files/src/artifacts/snapshot.ts +13 -0
- package/workspace-snapshot/files/src/artifacts/summary.ts +116 -0
- package/workspace-snapshot/files/src/cli/commands/diagnose-vercel-bridge.ts +25 -0
- package/workspace-snapshot/files/src/cli/commands/doctor.ts +205 -0
- package/workspace-snapshot/files/src/cli/commands/inspect.ts +46 -0
- package/workspace-snapshot/files/src/cli/commands/operator-init.ts +39 -0
- package/workspace-snapshot/files/src/cli/commands/redact-output.ts +19 -0
- package/workspace-snapshot/files/src/cli/commands/resolve-route.ts +81 -0
- package/workspace-snapshot/files/src/cli/commands/run.ts +53 -0
- package/workspace-snapshot/files/src/cli/commands/sync-production.ts +207 -0
- package/workspace-snapshot/files/src/cli/commands/validate-issue.ts +72 -0
- package/workspace-snapshot/files/src/cli/exit-codes.ts +4 -0
- package/workspace-snapshot/files/src/cli/finalize-exit.ts +9 -0
- package/workspace-snapshot/files/src/cli/program.ts +200 -0
- package/workspace-snapshot/files/src/config/defaults.ts +33 -0
- package/workspace-snapshot/files/src/config/load-config.ts +80 -0
- package/workspace-snapshot/files/src/config/load-dotenv.ts +11 -0
- package/workspace-snapshot/files/src/config/resolve-config.ts +127 -0
- package/workspace-snapshot/files/src/config/schema.ts +129 -0
- package/workspace-snapshot/files/src/config/status-names.ts +63 -0
- package/workspace-snapshot/files/src/config/types.ts +1 -0
- package/workspace-snapshot/files/src/cursor/agent-factory.ts +126 -0
- package/workspace-snapshot/files/src/cursor/errors.ts +18 -0
- package/workspace-snapshot/files/src/cursor/git-result.ts +87 -0
- package/workspace-snapshot/files/src/cursor/model.ts +47 -0
- package/workspace-snapshot/files/src/cursor/revision-git-result.ts +80 -0
- package/workspace-snapshot/files/src/cursor/run-cleanup.ts +30 -0
- package/workspace-snapshot/files/src/cursor/run-observer.ts +367 -0
- package/workspace-snapshot/files/src/cursor/urls.ts +19 -0
- package/workspace-snapshot/files/src/fixture/frontmatter.ts +56 -0
- package/workspace-snapshot/files/src/github/actions-url.ts +13 -0
- package/workspace-snapshot/files/src/github/base-branch.ts +120 -0
- package/workspace-snapshot/files/src/github/check-policy.ts +108 -0
- package/workspace-snapshot/files/src/github/client.ts +796 -0
- package/workspace-snapshot/files/src/github/commit-reachability.ts +184 -0
- package/workspace-snapshot/files/src/github/links.ts +23 -0
- package/workspace-snapshot/files/src/github/merge-result.ts +31 -0
- package/workspace-snapshot/files/src/github/pr-discovery.ts +55 -0
- package/workspace-snapshot/files/src/github/pr-inspector.ts +297 -0
- package/workspace-snapshot/files/src/github/pr-url.ts +23 -0
- package/workspace-snapshot/files/src/github/rate-limit-metadata.ts +105 -0
- package/workspace-snapshot/files/src/gui/configure-health.ts +160 -0
- package/workspace-snapshot/files/src/gui/dev-server-process.ts +213 -0
- package/workspace-snapshot/files/src/gui/port.ts +78 -0
- package/workspace-snapshot/files/src/gui/repo-root.ts +61 -0
- package/workspace-snapshot/files/src/gui/start-configure-stable.ts +139 -0
- package/workspace-snapshot/files/src/gui/start-gui.ts +126 -0
- package/workspace-snapshot/files/src/index.ts +10 -0
- package/workspace-snapshot/files/src/linear/client.ts +49 -0
- package/workspace-snapshot/files/src/linear/comment-card.ts +74 -0
- package/workspace-snapshot/files/src/linear/comments.ts +891 -0
- package/workspace-snapshot/files/src/linear/handoff-comment.ts +19 -0
- package/workspace-snapshot/files/src/linear/issue-query.ts +70 -0
- package/workspace-snapshot/files/src/linear/markers.ts +238 -0
- package/workspace-snapshot/files/src/linear/merge-source-comment.ts +46 -0
- package/workspace-snapshot/files/src/linear/parser.ts +101 -0
- package/workspace-snapshot/files/src/linear/phase-labels.ts +58 -0
- package/workspace-snapshot/files/src/linear/planning-comment.ts +19 -0
- package/workspace-snapshot/files/src/linear/pm-feedback-comment.ts +41 -0
- package/workspace-snapshot/files/src/linear/revision-comment.ts +19 -0
- package/workspace-snapshot/files/src/linear/states.ts +20 -0
- package/workspace-snapshot/files/src/linear/writer.ts +216 -0
- package/workspace-snapshot/files/src/p-dev/browser.ts +26 -0
- package/workspace-snapshot/files/src/p-dev/cli.ts +93 -0
- package/workspace-snapshot/files/src/p-dev/git-object-plumbing.ts +271 -0
- package/workspace-snapshot/files/src/p-dev/launch.ts +173 -0
- package/workspace-snapshot/files/src/p-dev/main.ts +10 -0
- package/workspace-snapshot/files/src/p-dev/next-bin.ts +8 -0
- package/workspace-snapshot/files/src/p-dev/node-version.ts +46 -0
- package/workspace-snapshot/files/src/p-dev/package-paths.ts +47 -0
- package/workspace-snapshot/files/src/p-dev/package-version.ts +63 -0
- package/workspace-snapshot/files/src/p-dev/runtime-mode.ts +28 -0
- package/workspace-snapshot/files/src/p-dev/shutdown.ts +66 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-digest.ts +50 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-generator.ts +112 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-git.ts +221 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-manifest.ts +336 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-policy.ts +198 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-types.ts +59 -0
- package/workspace-snapshot/files/src/p-dev/workspace-snapshot-validation.ts +137 -0
- package/workspace-snapshot/files/src/p-dev/workspace.ts +114 -0
- package/workspace-snapshot/files/src/preview/production-from-merge.ts +143 -0
- package/workspace-snapshot/files/src/preview/urls.ts +28 -0
- package/workspace-snapshot/files/src/preview/vercel-from-pr.ts +123 -0
- package/workspace-snapshot/files/src/prompts/branch-name.ts +22 -0
- package/workspace-snapshot/files/src/prompts/builder.ts +88 -0
- package/workspace-snapshot/files/src/prompts/implementation.md +77 -0
- package/workspace-snapshot/files/src/prompts/integration-repair-builder.ts +65 -0
- package/workspace-snapshot/files/src/prompts/integration-repair.md +111 -0
- package/workspace-snapshot/files/src/prompts/planning.md +64 -0
- package/workspace-snapshot/files/src/prompts/revision-builder.ts +61 -0
- package/workspace-snapshot/files/src/prompts/revision.md +71 -0
- package/workspace-snapshot/files/src/resolver/allowed-repos.ts +18 -0
- package/workspace-snapshot/files/src/resolver/errors.ts +14 -0
- package/workspace-snapshot/files/src/resolver/normalize-repo.ts +32 -0
- package/workspace-snapshot/files/src/resolver/target-repo.ts +118 -0
- package/workspace-snapshot/files/src/runner/building-recovery.ts +26 -0
- package/workspace-snapshot/files/src/runner/dry-run.ts +137 -0
- package/workspace-snapshot/files/src/runner/errors.ts +70 -0
- package/workspace-snapshot/files/src/runner/execution-environment.ts +179 -0
- package/workspace-snapshot/files/src/runner/fixture.ts +25 -0
- package/workspace-snapshot/files/src/runner/idempotency.ts +507 -0
- package/workspace-snapshot/files/src/runner/orchestrator.ts +182 -0
- package/workspace-snapshot/files/src/runner/phase-args.ts +49 -0
- package/workspace-snapshot/files/src/runner/phase-infer.ts +67 -0
- package/workspace-snapshot/files/src/runner/phases/handoff.ts +615 -0
- package/workspace-snapshot/files/src/runner/phases/implementation.ts +617 -0
- package/workspace-snapshot/files/src/runner/phases/integration-repair.ts +613 -0
- package/workspace-snapshot/files/src/runner/phases/merge.ts +1202 -0
- package/workspace-snapshot/files/src/runner/phases/planning.ts +456 -0
- package/workspace-snapshot/files/src/runner/phases/production-sync.ts +308 -0
- package/workspace-snapshot/files/src/runner/phases/revision.ts +795 -0
- package/workspace-snapshot/files/src/runner/preflight.ts +218 -0
- package/workspace-snapshot/files/src/runner/resolve-route.ts +154 -0
- package/workspace-snapshot/files/src/setup/config-builder.ts +117 -0
- package/workspace-snapshot/files/src/setup/config-local-editor.ts +260 -0
- package/workspace-snapshot/files/src/setup/config-writer.ts +173 -0
- package/workspace-snapshot/files/src/setup/control-plane-readiness-server.ts +16 -0
- package/workspace-snapshot/files/src/setup/control-plane-readiness.ts +291 -0
- package/workspace-snapshot/files/src/setup/control-plane-setup-state.ts +60 -0
- package/workspace-snapshot/files/src/setup/control-plane-types.ts +121 -0
- package/workspace-snapshot/files/src/setup/doctor-summary.ts +96 -0
- package/workspace-snapshot/files/src/setup/env-merge.ts +266 -0
- package/workspace-snapshot/files/src/setup/env-writer.ts +179 -0
- package/workspace-snapshot/files/src/setup/first-run-readiness.ts +1431 -0
- package/workspace-snapshot/files/src/setup/generated-instructions.ts +96 -0
- package/workspace-snapshot/files/src/setup/github-dispatch-token.ts +88 -0
- package/workspace-snapshot/files/src/setup/github-remote-provider.ts +983 -0
- package/workspace-snapshot/files/src/setup/github-remote-setup-live.ts +775 -0
- package/workspace-snapshot/files/src/setup/github-repo-slug.ts +31 -0
- package/workspace-snapshot/files/src/setup/github-secret-encryption.ts +16 -0
- package/workspace-snapshot/files/src/setup/github-upload-rate-limit-gate.ts +58 -0
- package/workspace-snapshot/files/src/setup/github-workflow-permissions.ts +174 -0
- package/workspace-snapshot/files/src/setup/gui-view-model.ts +566 -0
- package/workspace-snapshot/files/src/setup/guided-config-form.ts +52 -0
- package/workspace-snapshot/files/src/setup/harness-dispatch-repo.ts +158 -0
- package/workspace-snapshot/files/src/setup/harness-managed-repo-marker.ts +653 -0
- package/workspace-snapshot/files/src/setup/harness-provisioning-context.ts +331 -0
- package/workspace-snapshot/files/src/setup/harness-provisioning-pending-state.ts +282 -0
- package/workspace-snapshot/files/src/setup/harness-repo-provisioning.ts +1656 -0
- package/workspace-snapshot/files/src/setup/harness-secret-fingerprint.ts +51 -0
- package/workspace-snapshot/files/src/setup/harness-secret-setup.ts +439 -0
- package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning-helpers.ts +92 -0
- package/workspace-snapshot/files/src/setup/harness-snapshot-provisioning.ts +1007 -0
- package/workspace-snapshot/files/src/setup/harness-template-identity.ts +151 -0
- package/workspace-snapshot/files/src/setup/harness-workspace-snapshot-loader.ts +105 -0
- package/workspace-snapshot/files/src/setup/linear-setup-apply.ts +270 -0
- package/workspace-snapshot/files/src/setup/linear-setup-client.ts +276 -0
- package/workspace-snapshot/files/src/setup/linear-setup-plan.ts +353 -0
- package/workspace-snapshot/files/src/setup/linear-setup-summary.ts +33 -0
- package/workspace-snapshot/files/src/setup/linear-status-contract.ts +110 -0
- package/workspace-snapshot/files/src/setup/linear-webhook-env-local.ts +104 -0
- package/workspace-snapshot/files/src/setup/linear-webhook-secret.ts +441 -0
- package/workspace-snapshot/files/src/setup/local-apply-actions.ts +524 -0
- package/workspace-snapshot/files/src/setup/local-readiness-checks.ts +334 -0
- package/workspace-snapshot/files/src/setup/mock-git-repository-store.ts +291 -0
- package/workspace-snapshot/files/src/setup/mock-target-workflow-finalization.ts +445 -0
- package/workspace-snapshot/files/src/setup/model-settings.ts +73 -0
- package/workspace-snapshot/files/src/setup/permission-model.ts +79 -0
- package/workspace-snapshot/files/src/setup/redact-secrets.ts +85 -0
- package/workspace-snapshot/files/src/setup/remote-actions.ts +214 -0
- package/workspace-snapshot/files/src/setup/remote-apply-actions.ts +390 -0
- package/workspace-snapshot/files/src/setup/remote-preview-fingerprint.ts +37 -0
- package/workspace-snapshot/files/src/setup/remote-setup-summary.ts +143 -0
- package/workspace-snapshot/files/src/setup/secret-change-token.ts +14 -0
- package/workspace-snapshot/files/src/setup/service-verification.ts +549 -0
- package/workspace-snapshot/files/src/setup/setup-actions.ts +183 -0
- package/workspace-snapshot/files/src/setup/setup-github-auth.ts +15 -0
- package/workspace-snapshot/files/src/setup/setup-state.ts +74 -0
- package/workspace-snapshot/files/src/setup/stale-smoke-repo.ts +141 -0
- package/workspace-snapshot/files/src/setup/sync-downstream-summaries.ts +105 -0
- package/workspace-snapshot/files/src/setup/target-workflow-finalization-lock.ts +95 -0
- package/workspace-snapshot/files/src/setup/target-workflow-finalization-types.ts +55 -0
- package/workspace-snapshot/files/src/setup/target-workflow-finalization.ts +897 -0
- package/workspace-snapshot/files/src/setup/target-workflow-setup.ts +247 -0
- package/workspace-snapshot/files/src/setup/test-only-provisioning-provider.ts +51 -0
- package/workspace-snapshot/files/src/setup/test-only-remote-setup-provider.ts +51 -0
- package/workspace-snapshot/files/src/setup/tweetsodium.d.ts +14 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-diagnostics.ts +510 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-options.ts +160 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-readiness.ts +150 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-poll.ts +744 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-redeploy-state.ts +46 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-structured-log.ts +86 -0
- package/workspace-snapshot/files/src/setup/vercel-bridge-verification.ts +63 -0
- package/workspace-snapshot/files/src/setup/vercel-production-redeploy.ts +298 -0
- package/workspace-snapshot/files/src/setup/vercel-setup-apply.ts +1058 -0
- package/workspace-snapshot/files/src/setup/vercel-setup-client.ts +695 -0
- package/workspace-snapshot/files/src/setup/vercel-setup-plan.ts +672 -0
- package/workspace-snapshot/files/src/setup/vercel-setup-summary.ts +42 -0
- package/workspace-snapshot/files/src/setup/vercel-webhook-probe.ts +161 -0
- package/workspace-snapshot/files/src/setup/workflow-install-merge-errors.ts +166 -0
- package/workspace-snapshot/files/src/types/parsed-issue.ts +8 -0
- package/workspace-snapshot/files/src/types/run.ts +157 -0
- package/workspace-snapshot/files/src/validate/constants.ts +2 -0
- package/workspace-snapshot/files/src/validate/issue.ts +286 -0
- package/workspace-snapshot/files/src/validate/report.ts +68 -0
- package/workspace-snapshot/files/src/validate/types.ts +29 -0
- package/workspace-snapshot/files/src/webhook/dispatch-github.ts +44 -0
- package/workspace-snapshot/files/src/webhook/dispatch-statuses.ts +26 -0
- package/workspace-snapshot/files/src/webhook/extract-issue-key.ts +49 -0
- package/workspace-snapshot/files/src/webhook/filter.ts +41 -0
- package/workspace-snapshot/files/src/webhook/handle-linear-webhook.ts +201 -0
- package/workspace-snapshot/files/src/webhook/parse-linear-issue-event.ts +105 -0
- package/workspace-snapshot/files/src/webhook/redact-log.ts +26 -0
- package/workspace-snapshot/files/src/webhook/types.ts +75 -0
- package/workspace-snapshot/files/src/webhook/verify.ts +68 -0
- package/workspace-snapshot/files/src/webhook/workflow-command.ts +10 -0
- package/workspace-snapshot/files/src/workflow/dispatch-metadata.ts +59 -0
- package/workspace-snapshot/files/src/workflow/manifest-summary.ts +57 -0
- package/workspace-snapshot/files/src/workflow/production-sync-dispatch.ts +65 -0
- package/workspace-snapshot/files/src/workflow/summarize-manifest.ts +20 -0
- package/workspace-snapshot/files/src/workflow/validate.ts +43 -0
- package/workspace-snapshot/files/src/workflow/write-dispatch-metadata.ts +8 -0
- package/workspace-snapshot/files/templates/eval-scorecard.md +54 -0
- package/workspace-snapshot/files/templates/implementation-plan.md +59 -0
- package/workspace-snapshot/files/templates/linear-issue.md +53 -0
- package/workspace-snapshot/files/templates/pr-readiness-report.md +57 -0
- package/workspace-snapshot/files/tests/agents/cursor-provider.test.ts +238 -0
- package/workspace-snapshot/files/tests/artifacts/manifest.test.ts +54 -0
- package/workspace-snapshot/files/tests/artifacts/redact.test.ts +47 -0
- package/workspace-snapshot/files/tests/cli/doctor.test.ts +120 -0
- package/workspace-snapshot/files/tests/cli/finalize-exit.test.ts +28 -0
- package/workspace-snapshot/files/tests/cli/operator-init.test.ts +146 -0
- package/workspace-snapshot/files/tests/cli/sync-production-dispatch.test.ts +103 -0
- package/workspace-snapshot/files/tests/cli/validate-issue.test.ts +99 -0
- package/workspace-snapshot/files/tests/config/load-dotenv.test.ts +64 -0
- package/workspace-snapshot/files/tests/config/resolve-config.test.ts +273 -0
- package/workspace-snapshot/files/tests/config/schema.test.ts +107 -0
- package/workspace-snapshot/files/tests/cursor/agent-factory.test.ts +217 -0
- package/workspace-snapshot/files/tests/cursor/git-result.test.ts +77 -0
- package/workspace-snapshot/files/tests/cursor/model.test.ts +108 -0
- package/workspace-snapshot/files/tests/cursor/revision-git-result.test.ts +68 -0
- package/workspace-snapshot/files/tests/cursor/run-cleanup.test.ts +52 -0
- package/workspace-snapshot/files/tests/cursor/run-observer.test.ts +280 -0
- package/workspace-snapshot/files/tests/cursor/urls.test.ts +27 -0
- package/workspace-snapshot/files/tests/fixtures/config/minimal.json +16 -0
- package/workspace-snapshot/files/tests/fixtures/github/pr-4-vercel-comment.json +10 -0
- package/workspace-snapshot/files/tests/fixtures/issues/broad-for-direct-impl.md +28 -0
- package/workspace-snapshot/files/tests/fixtures/issues/context-target-repo.md +21 -0
- package/workspace-snapshot/files/tests/fixtures/issues/explicit-target-repo.md +21 -0
- package/workspace-snapshot/files/tests/fixtures/issues/gpt-broad-example.md +35 -0
- package/workspace-snapshot/files/tests/fixtures/issues/gpt-narrow-example.md +30 -0
- package/workspace-snapshot/files/tests/fixtures/issues/invalid-missing-task.md +16 -0
- package/workspace-snapshot/files/tests/fixtures/issues/invalid-no-ac-bullets.md +20 -0
- package/workspace-snapshot/files/tests/fixtures/issues/missing-acceptance-criteria.md +17 -0
- package/workspace-snapshot/files/tests/fixtures/issues/unknown-repo.md +20 -0
- package/workspace-snapshot/files/tests/fixtures/issues/valid-minimal.md +20 -0
- package/workspace-snapshot/files/tests/fixtures/issues/valid-project-only.md +17 -0
- package/workspace-snapshot/files/tests/fixtures/issues/valid-target-app.md +31 -0
- package/workspace-snapshot/files/tests/fixtures/linear/implementation-comment-wes-13.md +16 -0
- package/workspace-snapshot/files/tests/fixtures/linear/pm-feedback-wes-13.md +3 -0
- package/workspace-snapshot/files/tests/fixtures/webhook/issue-building-to-pr-open.json +27 -0
- package/workspace-snapshot/files/tests/fixtures/webhook/issue-pm-review.json +27 -0
- package/workspace-snapshot/files/tests/fixtures/webhook/issue-ready-for-planning.json +27 -0
- package/workspace-snapshot/files/tests/fixtures/webhook/issue-title-only-update.json +25 -0
- package/workspace-snapshot/files/tests/fixtures/workflows/harness-auto-runner-with-production-sync.yml +561 -0
- package/workspace-snapshot/files/tests/fixtures/workflows/trigger-harness-production-sync.yml +31 -0
- package/workspace-snapshot/files/tests/github/actions-url.test.ts +45 -0
- package/workspace-snapshot/files/tests/github/base-branch.test.ts +156 -0
- package/workspace-snapshot/files/tests/github/check-policy.test.ts +59 -0
- package/workspace-snapshot/files/tests/github/client.test.ts +226 -0
- package/workspace-snapshot/files/tests/github/commit-reachability.test.ts +148 -0
- package/workspace-snapshot/files/tests/github/merge-result.test.ts +26 -0
- package/workspace-snapshot/files/tests/github/pr-discovery.test.ts +55 -0
- package/workspace-snapshot/files/tests/github/pr-inspector.test.ts +393 -0
- package/workspace-snapshot/files/tests/github/pr-url.test.ts +30 -0
- package/workspace-snapshot/files/tests/github/rate-limit-metadata.test.ts +92 -0
- package/workspace-snapshot/files/tests/gui/configure-fix-loop.test.ts +460 -0
- package/workspace-snapshot/files/tests/gui/configure-health.test.ts +67 -0
- package/workspace-snapshot/files/tests/gui/design-system.test.ts +86 -0
- package/workspace-snapshot/files/tests/gui/dev-server-process.test.ts +22 -0
- package/workspace-snapshot/files/tests/gui/guided-setup.test.ts +186 -0
- package/workspace-snapshot/files/tests/gui/m6-configure-boundaries.test.ts +884 -0
- package/workspace-snapshot/files/tests/gui/packaged-harness-cloud-secrets-routes.test.ts +287 -0
- package/workspace-snapshot/files/tests/gui/packaged-harness-provisioning-routes.test.ts +212 -0
- package/workspace-snapshot/files/tests/gui/packaged-harness-target-workflow-routes.test.ts +227 -0
- package/workspace-snapshot/files/tests/gui/port.test.ts +74 -0
- package/workspace-snapshot/files/tests/gui/repo-root.test.ts +60 -0
- package/workspace-snapshot/files/tests/gui/setup-api.test.ts +181 -0
- package/workspace-snapshot/files/tests/gui/setup-json-response.test.ts +34 -0
- package/workspace-snapshot/files/tests/gui/step6-remote-state.test.ts +75 -0
- package/workspace-snapshot/files/tests/gui/sync-downstream-summaries.test.ts +198 -0
- package/workspace-snapshot/files/tests/gui/vercel-bridge-polling-ui.test.ts +25 -0
- package/workspace-snapshot/files/tests/gui/verification-state.test.ts +172 -0
- package/workspace-snapshot/files/tests/linear/comment-assertions.ts +24 -0
- package/workspace-snapshot/files/tests/linear/comment-card.test.ts +73 -0
- package/workspace-snapshot/files/tests/linear/comments.test.ts +185 -0
- package/workspace-snapshot/files/tests/linear/handoff-comment.test.ts +34 -0
- package/workspace-snapshot/files/tests/linear/markers.test.ts +97 -0
- package/workspace-snapshot/files/tests/linear/merge-comment.test.ts +61 -0
- package/workspace-snapshot/files/tests/linear/merge-source-comment.test.ts +49 -0
- package/workspace-snapshot/files/tests/linear/parser.test.ts +83 -0
- package/workspace-snapshot/files/tests/linear/planning-comment.test.ts +29 -0
- package/workspace-snapshot/files/tests/linear/pm-feedback-comment.test.ts +63 -0
- package/workspace-snapshot/files/tests/p-dev/browser.test.ts +38 -0
- package/workspace-snapshot/files/tests/p-dev/cli.test.ts +39 -0
- package/workspace-snapshot/files/tests/p-dev/git-object-plumbing.test.ts +139 -0
- package/workspace-snapshot/files/tests/p-dev/launch.test.ts +110 -0
- package/workspace-snapshot/files/tests/p-dev/next-bin.test.ts +16 -0
- package/workspace-snapshot/files/tests/p-dev/node-version.test.ts +20 -0
- package/workspace-snapshot/files/tests/p-dev/package-manifest.test.ts +47 -0
- package/workspace-snapshot/files/tests/p-dev/package-packed-artifact.test.ts +130 -0
- package/workspace-snapshot/files/tests/p-dev/package-paths.test.ts +43 -0
- package/workspace-snapshot/files/tests/p-dev/package-version.test.ts +55 -0
- package/workspace-snapshot/files/tests/p-dev/packaged-workspace-setup.test.ts +87 -0
- package/workspace-snapshot/files/tests/p-dev/runtime-mode.test.ts +18 -0
- package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-digest.test.ts +61 -0
- package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-generator.test.ts +76 -0
- package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-policy.test.ts +35 -0
- package/workspace-snapshot/files/tests/p-dev/workspace-snapshot-validation.test.ts +158 -0
- package/workspace-snapshot/files/tests/p-dev/workspace.test.ts +80 -0
- package/workspace-snapshot/files/tests/preview/production-from-merge.test.ts +39 -0
- package/workspace-snapshot/files/tests/preview/vercel-from-pr.test.ts +120 -0
- package/workspace-snapshot/files/tests/prompts/builder.test.ts +58 -0
- package/workspace-snapshot/files/tests/prompts/implementation-builder.test.ts +76 -0
- package/workspace-snapshot/files/tests/prompts/issue-intake-chatgpt.test.ts +105 -0
- package/workspace-snapshot/files/tests/resolver/allowed-repos.test.ts +44 -0
- package/workspace-snapshot/files/tests/resolver/normalize-repo.test.ts +44 -0
- package/workspace-snapshot/files/tests/resolver/target-repo.test.ts +91 -0
- package/workspace-snapshot/files/tests/runner/building-recovery.test.ts +30 -0
- package/workspace-snapshot/files/tests/runner/dry-run.test.ts +128 -0
- package/workspace-snapshot/files/tests/runner/execution-environment.test.ts +114 -0
- package/workspace-snapshot/files/tests/runner/handoff.test.ts +312 -0
- package/workspace-snapshot/files/tests/runner/idempotency-handoff.test.ts +170 -0
- package/workspace-snapshot/files/tests/runner/idempotency-implementation.test.ts +143 -0
- package/workspace-snapshot/files/tests/runner/idempotency-merge.test.ts +118 -0
- package/workspace-snapshot/files/tests/runner/idempotency-revision.test.ts +111 -0
- package/workspace-snapshot/files/tests/runner/idempotency.test.ts +83 -0
- package/workspace-snapshot/files/tests/runner/implementation.test.ts +196 -0
- package/workspace-snapshot/files/tests/runner/integration-repair.test.ts +263 -0
- package/workspace-snapshot/files/tests/runner/merge.test.ts +760 -0
- package/workspace-snapshot/files/tests/runner/orchestrator.test.ts +301 -0
- package/workspace-snapshot/files/tests/runner/phase-args.test.ts +38 -0
- package/workspace-snapshot/files/tests/runner/planning.test.ts +160 -0
- package/workspace-snapshot/files/tests/runner/resolve-route.test.ts +249 -0
- package/workspace-snapshot/files/tests/runner/revision.test.ts +326 -0
- package/workspace-snapshot/files/tests/setup/config-builder.test.ts +136 -0
- package/workspace-snapshot/files/tests/setup/config-local-editor.test.ts +164 -0
- package/workspace-snapshot/files/tests/setup/connect-services-credential-availability.test.ts +151 -0
- package/workspace-snapshot/files/tests/setup/connect-services-env.test.ts +84 -0
- package/workspace-snapshot/files/tests/setup/control-plane-readiness.test.ts +59 -0
- package/workspace-snapshot/files/tests/setup/doctor-summary.test.ts +48 -0
- package/workspace-snapshot/files/tests/setup/env-merge.test.ts +177 -0
- package/workspace-snapshot/files/tests/setup/env-writer.test.ts +97 -0
- package/workspace-snapshot/files/tests/setup/first-run-readiness.test.ts +1099 -0
- package/workspace-snapshot/files/tests/setup/generated-instructions.test.ts +48 -0
- package/workspace-snapshot/files/tests/setup/github-dispatch-token.test.ts +111 -0
- package/workspace-snapshot/files/tests/setup/github-remote-provider.test.ts +66 -0
- package/workspace-snapshot/files/tests/setup/github-remote-setup-live.test.ts +59 -0
- package/workspace-snapshot/files/tests/setup/github-workflow-permissions.test.ts +71 -0
- package/workspace-snapshot/files/tests/setup/gui-remote-storage.test.ts +43 -0
- package/workspace-snapshot/files/tests/setup/gui-view-model.test.ts +251 -0
- package/workspace-snapshot/files/tests/setup/guided-config-form.test.ts +54 -0
- package/workspace-snapshot/files/tests/setup/harness-dispatch-repo.test.ts +105 -0
- package/workspace-snapshot/files/tests/setup/harness-managed-repo-marker.test.ts +141 -0
- package/workspace-snapshot/files/tests/setup/harness-provisioning-context.test.ts +89 -0
- package/workspace-snapshot/files/tests/setup/harness-provisioning-pending-state.test.ts +88 -0
- package/workspace-snapshot/files/tests/setup/harness-repo-provisioning.test.ts +897 -0
- package/workspace-snapshot/files/tests/setup/harness-secret-setup.test.ts +255 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-default-branch.test.ts +73 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-description-finalization.test.ts +136 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-marker-tree.test.ts +61 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-reconciliation.test.ts +132 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-structured-errors.test.ts +137 -0
- package/workspace-snapshot/files/tests/setup/harness-snapshot-upload-rate-limit.test.ts +105 -0
- package/workspace-snapshot/files/tests/setup/linear-setup-apply.test.ts +131 -0
- package/workspace-snapshot/files/tests/setup/linear-setup-plan.test.ts +106 -0
- package/workspace-snapshot/files/tests/setup/linear-webhook-env-local.test.ts +95 -0
- package/workspace-snapshot/files/tests/setup/linear-webhook-secret.test.ts +256 -0
- package/workspace-snapshot/files/tests/setup/live-provisioning-error-preservation.test.ts +98 -0
- package/workspace-snapshot/files/tests/setup/local-apply-actions.test.ts +352 -0
- package/workspace-snapshot/files/tests/setup/local-readiness-checks.test.ts +175 -0
- package/workspace-snapshot/files/tests/setup/model-settings.test.ts +52 -0
- package/workspace-snapshot/files/tests/setup/packaged-provisioning-permissions.test.ts +41 -0
- package/workspace-snapshot/files/tests/setup/permission-model.test.ts +38 -0
- package/workspace-snapshot/files/tests/setup/redact-secrets.test.ts +78 -0
- package/workspace-snapshot/files/tests/setup/remote-actions.test.ts +45 -0
- package/workspace-snapshot/files/tests/setup/remote-apply-actions.test.ts +302 -0
- package/workspace-snapshot/files/tests/setup/remote-preview-fingerprint.test.ts +121 -0
- package/workspace-snapshot/files/tests/setup/service-verification.test.ts +312 -0
- package/workspace-snapshot/files/tests/setup/setup-actions.test.ts +96 -0
- package/workspace-snapshot/files/tests/setup/setup-form-defaults.test.ts +35 -0
- package/workspace-snapshot/files/tests/setup/setup-server-remote.test.ts +90 -0
- package/workspace-snapshot/files/tests/setup/stale-smoke-repo.test.ts +84 -0
- package/workspace-snapshot/files/tests/setup/step6-automatic-apply-outcome.test.ts +303 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-finalization-lock.test.ts +51 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-finalization-step-github.test.ts +435 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-finalization.test.ts +222 -0
- package/workspace-snapshot/files/tests/setup/target-workflow-setup.test.ts +62 -0
- package/workspace-snapshot/files/tests/setup/test-workspace-snapshot-fixture.ts +100 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-diagnostics.test.ts +429 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-options.test.ts +135 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-preview-fingerprint.test.ts +52 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-redeploy-poll.test.ts +582 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-structured-log.test.ts +45 -0
- package/workspace-snapshot/files/tests/setup/vercel-bridge-verification.test.ts +39 -0
- package/workspace-snapshot/files/tests/setup/vercel-endpoint-reachability.test.ts +60 -0
- package/workspace-snapshot/files/tests/setup/vercel-production-redeploy.test.ts +184 -0
- package/workspace-snapshot/files/tests/setup/vercel-setup-apply.test.ts +1282 -0
- package/workspace-snapshot/files/tests/setup/vercel-setup-client.test.ts +395 -0
- package/workspace-snapshot/files/tests/setup/vercel-setup-plan.test.ts +261 -0
- package/workspace-snapshot/files/tests/setup/vercel-webhook-probe.test.ts +78 -0
- package/workspace-snapshot/files/tests/setup/workflow-install-merge-errors.test.ts +38 -0
- package/workspace-snapshot/files/tests/validate-issue/report.test.ts +56 -0
- package/workspace-snapshot/files/tests/validate-issue/validate-issue.test.ts +202 -0
- package/workspace-snapshot/files/tests/webhook/dispatch-github.test.ts +193 -0
- package/workspace-snapshot/files/tests/webhook/extract-issue-key.test.ts +65 -0
- package/workspace-snapshot/files/tests/webhook/filter.test.ts +132 -0
- package/workspace-snapshot/files/tests/webhook/harness-auto-runner-workflow.test.ts +169 -0
- package/workspace-snapshot/files/tests/webhook/parse-linear-issue-event.test.ts +89 -0
- package/workspace-snapshot/files/tests/webhook/verify.test.ts +125 -0
- package/workspace-snapshot/files/tests/workflow/dispatch-metadata.test.ts +38 -0
- package/workspace-snapshot/files/tests/workflow/manifest-summary.test.ts +58 -0
- package/workspace-snapshot/files/tests/workflow/production-sync-dispatch.test.ts +101 -0
- package/workspace-snapshot/files/tests/workflow/validate.test.ts +70 -0
- package/workspace-snapshot/files/tests/workflow/workflow-shell-safety.test.ts +92 -0
- package/workspace-snapshot/files/tsconfig.json +22 -0
- package/workspace-snapshot/files/vercel.json +10 -0
- package/workspace-snapshot/files/vitest.config.ts +15 -0
- package/workspace-snapshot/manifest.json +4911 -0
- package/gui/.next/server/chunks/120.js +0 -81
- package/gui/.next/static/css/cc2acc71c03f3b4b.css +0 -3
- /package/gui/.next/static/{7x8X_k4tESvkyqRnNCC9E → ZGJuemeaiW4yT7CTlmjdG}/_buildManifest.js +0 -0
- /package/gui/.next/static/{7x8X_k4tESvkyqRnNCC9E → ZGJuemeaiW4yT7CTlmjdG}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# Skill architecture
|
|
2
|
+
|
|
3
|
+
**Status:** Implemented — architecture artifact and canonical path. Operator-invoked skills: `issue-intake`, `code-health-audit`, `architecture-evolution-audit`, and `security-audit` are implemented. Runner/agent phase skills: `planner` and `implementation` are implemented.
|
|
4
|
+
|
|
5
|
+
This document defines the harness skill system. It does **not** create the full skill set.
|
|
6
|
+
|
|
7
|
+
## What a harness skill is
|
|
8
|
+
|
|
9
|
+
A harness skill is a **reusable workflow contract** for an agent or operator.
|
|
10
|
+
|
|
11
|
+
| Concept | What it is |
|
|
12
|
+
|---------|------------|
|
|
13
|
+
| **Skill** | Version-controlled workflow contract with clear inputs, outputs, boundaries, and maturity labels |
|
|
14
|
+
| **Prompt** | Instructions for a single run or client session — not necessarily a durable, reviewable contract |
|
|
15
|
+
| **Tool** | Executable capability (CLI, MCP, API) — not a workflow definition |
|
|
16
|
+
|
|
17
|
+
A skill is **not** merely a prompt and **not** a tool.
|
|
18
|
+
|
|
19
|
+
## Canonical layout
|
|
20
|
+
|
|
21
|
+
Canonical harness skills live at:
|
|
22
|
+
|
|
23
|
+
```text
|
|
24
|
+
.agents/skills/<skill-name>/SKILL.md
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Rules:
|
|
28
|
+
|
|
29
|
+
- Every canonical skill has **exactly one** primary `SKILL.md`.
|
|
30
|
+
- Additional files exist only when they materially improve clarity, reuse, validation, or execution.
|
|
31
|
+
- Tool-specific locations (`.cursor/skills`, `.claude/skills`, ChatGPT project files, future Codex adapters) are **adapters** — generated copies, symlinks, exports, or client-specific forms. They are **not** the canonical source of truth.
|
|
32
|
+
|
|
33
|
+
Documentation about the skill system lives under [`docs/skills/`](README.md).
|
|
34
|
+
|
|
35
|
+
## Skill folder shape
|
|
36
|
+
|
|
37
|
+
Minimum:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
.agents/skills/<skill-name>/
|
|
41
|
+
SKILL.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Optional supporting files, only when needed:
|
|
45
|
+
|
|
46
|
+
- `examples.md` or `examples/`
|
|
47
|
+
- `references/` — shared reference material consumed by the skill
|
|
48
|
+
- `modes/` — mode-specific instructions when one skill has distinct execution modes
|
|
49
|
+
- `resources/` — static assets or templates
|
|
50
|
+
- `scripts/` — helper scripts used by the skill workflow
|
|
51
|
+
- `adapters/` — client-specific export notes or adapter stubs
|
|
52
|
+
|
|
53
|
+
Do not add structure before a second or third skill proves it is needed. Prefer a flat folder with one or two markdown files until complexity warrants more.
|
|
54
|
+
|
|
55
|
+
## Adapter model
|
|
56
|
+
|
|
57
|
+
Client and provider locations are **adapters**, not canonical sources:
|
|
58
|
+
|
|
59
|
+
| Location | Role |
|
|
60
|
+
|----------|------|
|
|
61
|
+
| `.agents/skills/<skill-name>/` | **Canonical** repo source |
|
|
62
|
+
| `.cursor/skills/<skill-name>/` | Cursor install/adaptation location |
|
|
63
|
+
| `.claude/skills/<skill-name>/` | Future Claude adapter (not implemented) |
|
|
64
|
+
| ChatGPT project files | Future export/adaptation (not implemented) |
|
|
65
|
+
| Future Codex adapters | Future export/adaptation (not implemented) |
|
|
66
|
+
|
|
67
|
+
**Do not claim** Claude, Codex, ChatGPT adapter automation, or multi-client skill sync as implemented until an adapter is proven end to end.
|
|
68
|
+
|
|
69
|
+
## Ownership and promotion
|
|
70
|
+
|
|
71
|
+
Skill creation and promotion are **human-owned** product/architecture decisions. Agents may propose, draft, or document skill candidates, but must not autonomously create, promote, or enforce skill-creation policy. Repetition or validation history may be useful evidence, but it is not a required gate unless explicitly set by the human operator.
|
|
72
|
+
|
|
73
|
+
## Skill categories
|
|
74
|
+
|
|
75
|
+
### Operator-invoked skills
|
|
76
|
+
|
|
77
|
+
Used directly by the operator in an agent client (Cursor, future clients). The operator chooses when to invoke the skill.
|
|
78
|
+
|
|
79
|
+
**Implemented:**
|
|
80
|
+
|
|
81
|
+
| Skill | Purpose |
|
|
82
|
+
|-------|---------|
|
|
83
|
+
| `issue-intake` | Turn a fuzzy product idea into a harness-compatible Linear issue |
|
|
84
|
+
| `code-health-audit` | Report-only inspection of code health |
|
|
85
|
+
| `architecture-evolution-audit` | Report-only inspection of architecture evolution and future-change readiness |
|
|
86
|
+
| `security-audit` | Report-only security risk inspection |
|
|
87
|
+
|
|
88
|
+
**Planned architecture concepts only** (not implemented):
|
|
89
|
+
|
|
90
|
+
| Skill | Purpose |
|
|
91
|
+
|-------|---------|
|
|
92
|
+
| `performance-cost-audit` | Report-only performance and cost inspection |
|
|
93
|
+
|
|
94
|
+
### Runner / agent phase skills
|
|
95
|
+
|
|
96
|
+
Reusable workflow contracts aligned with harness phases and cloud agent runs. They describe what an agent should do when planning or implementing work; they are distinct from operator-invoked skills.
|
|
97
|
+
|
|
98
|
+
Runner/agent phase skills are **workflow contracts only** today. They are **not** wired as runner prompt integration — SDK runners continue to use [`src/prompts/*.md`](../src/prompts/). Status routing and Linear transitions remain runner-owned.
|
|
99
|
+
|
|
100
|
+
**Implemented:**
|
|
101
|
+
|
|
102
|
+
| Skill | Trigger context | Purpose |
|
|
103
|
+
|-------|-----------------|---------|
|
|
104
|
+
| `planner` | Ready for Planning | Produce durable planning output and reviewable PR slices for operator or runner use |
|
|
105
|
+
| `implementation` | Ready for Build, Needs Revision, integration repair | Scoped code changes on a feature branch |
|
|
106
|
+
|
|
107
|
+
#### Planner modes (implemented)
|
|
108
|
+
|
|
109
|
+
- Feature planning
|
|
110
|
+
- Audit-remediation planning (convert audit findings into remediation plans)
|
|
111
|
+
|
|
112
|
+
#### Shared planner capability (implemented)
|
|
113
|
+
|
|
114
|
+
- PR slicing — applied inside feature planning or audit-remediation planning when work is too large for one reviewable PR; not a standalone mode
|
|
115
|
+
|
|
116
|
+
#### Implementation modes (implemented)
|
|
117
|
+
|
|
118
|
+
- Initial build
|
|
119
|
+
- Revision (same agent, same branch — preserves context continuity)
|
|
120
|
+
- Integration repair (same agent — preserves branch/context continuity)
|
|
121
|
+
|
|
122
|
+
Revision and integration repair are **modes of the same implementation agent**, not separate agents.
|
|
123
|
+
|
|
124
|
+
## Audit skill policy
|
|
125
|
+
|
|
126
|
+
Audit skills are **report-only**. They inspect and produce findings. They do not make code changes.
|
|
127
|
+
|
|
128
|
+
| Role | Responsibility |
|
|
129
|
+
|------|----------------|
|
|
130
|
+
| Audit skills | Inspect and report findings |
|
|
131
|
+
| Planner | Convert findings into remediation plans and reviewable PR slices |
|
|
132
|
+
| Implementation agent | Make scoped code changes |
|
|
133
|
+
|
|
134
|
+
Implemented audit skills are `code-health-audit`, `architecture-evolution-audit`, and `security-audit`. Additional audit skills remain planned.
|
|
135
|
+
|
|
136
|
+
## What is not a skill (for now)
|
|
137
|
+
|
|
138
|
+
These remain templates, runner behavior, or references — not formal top-level skills:
|
|
139
|
+
|
|
140
|
+
- UI/design standards (planned future implementation **reference**, not a standalone skill)
|
|
141
|
+
- Reporting contracts and handoff reports
|
|
142
|
+
- PR-readiness review
|
|
143
|
+
- Umbrella release-readiness audit
|
|
144
|
+
|
|
145
|
+
A dedicated **release** skill is **not implemented**. Use conditional release-impact analysis in the canonical `planner` skill and aligned runtime planning prompt until a future human-owned decision explicitly promotes release orchestration into its own skill.
|
|
146
|
+
|
|
147
|
+
## Shared references and embedded standards
|
|
148
|
+
|
|
149
|
+
Some cross-cutting concerns are embedded in skill boundaries rather than promoted to standalone skills:
|
|
150
|
+
|
|
151
|
+
| Concern | Status |
|
|
152
|
+
|---------|--------|
|
|
153
|
+
| **PR slicing** | Implemented as a shared planner capability — not a standalone skill |
|
|
154
|
+
| **Scope control** | Embedded in planner and implementation skill boundaries |
|
|
155
|
+
| **Validation expectations** | Embedded by role — audit and planner skills are read-only; implementation performs validation and reports results |
|
|
156
|
+
| **UI/design standards** | Planned future implementation reference — not a standalone skill and not implemented in this PR |
|
|
157
|
+
|
|
158
|
+
## Relationship to runner prompts
|
|
159
|
+
|
|
160
|
+
SDK runner prompts in [`src/prompts/`](../src/prompts/) are **implementation details** for cloud agent phases today. They are not canonical harness skills.
|
|
161
|
+
|
|
162
|
+
| Layer | Location | Status |
|
|
163
|
+
|-------|----------|--------|
|
|
164
|
+
| Canonical skills | `.agents/skills/<skill-name>/SKILL.md` | `issue-intake`, `code-health-audit`, `architecture-evolution-audit`, `security-audit`, `planner`, `implementation` implemented |
|
|
165
|
+
| Runner prompts | `src/prompts/*.md` | Implemented for SDK phases |
|
|
166
|
+
| Client adapters | `.cursor/skills`, etc. | Manual install/export only |
|
|
167
|
+
|
|
168
|
+
Runner prompt contracts may be absorbed or referenced by canonical skills over time, but that migration is not part of this architecture artifact.
|
|
169
|
+
|
|
170
|
+
## Current implemented state
|
|
171
|
+
|
|
172
|
+
After this document and the accompanying migration:
|
|
173
|
+
|
|
174
|
+
| Item | Status |
|
|
175
|
+
|------|--------|
|
|
176
|
+
| `issue-intake` | **Implemented** at [`.agents/skills/issue-intake/SKILL.md`](../../.agents/skills/issue-intake/SKILL.md) |
|
|
177
|
+
| `code-health-audit` | **Implemented** at [`.agents/skills/code-health-audit/SKILL.md`](../../.agents/skills/code-health-audit/SKILL.md) |
|
|
178
|
+
| `planner` | **Implemented** at [`.agents/skills/planner/SKILL.md`](../../.agents/skills/planner/SKILL.md) |
|
|
179
|
+
| `implementation` | **Implemented** at [`.agents/skills/implementation/SKILL.md`](../../.agents/skills/implementation/SKILL.md) |
|
|
180
|
+
| `architecture-evolution-audit` | **Implemented** at [`.agents/skills/architecture-evolution-audit/SKILL.md`](../../.agents/skills/architecture-evolution-audit/SKILL.md) |
|
|
181
|
+
| `security-audit` | **Implemented** at [`.agents/skills/security-audit/SKILL.md`](../../.agents/skills/security-audit/SKILL.md) |
|
|
182
|
+
| `performance-cost-audit` | Planned architecture concept only |
|
|
183
|
+
| Skill registry / package manager | Not implemented — intentionally deferred |
|
|
184
|
+
| Skill manifests | Not implemented — intentionally deferred |
|
|
185
|
+
| Runner-skill / prompt integration | Not implemented — `src/prompts/*.md` remain runner implementation details |
|
|
186
|
+
| Provider/client adapters | Not implemented — documented as future work |
|
|
187
|
+
|
|
188
|
+
## Compatibility
|
|
189
|
+
|
|
190
|
+
Older paths under [`skills/`](../../skills/) are compatibility pointers only. See [`skills/README.md`](../../skills/README.md).
|
|
191
|
+
|
|
192
|
+
## Related docs
|
|
193
|
+
|
|
194
|
+
- Issue intake operator guide: [`docs/issue-intake.md`](../issue-intake.md)
|
|
195
|
+
- Provider portability: [`docs/provider-portability.md`](../provider-portability.md)
|
|
196
|
+
- Architecture overview: [`ARCHITECTURE.md`](../../ARCHITECTURE.md)
|
|
197
|
+
- Agent guide: [`AGENTS.md`](../../AGENTS.md)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Target repo branch setup
|
|
2
|
+
|
|
3
|
+
The harness merges pull requests into an **integration branch** configured per repo (`repos[].baseBranch`, e.g. `dev`). Production promotion (`dev` → `main`) is a **manual git step** followed by an explicit harness sync.
|
|
4
|
+
|
|
5
|
+
**Release contract:** [`docs/releases/v0.3.0.md`](releases/v0.3.0.md)
|
|
6
|
+
|
|
7
|
+
## Config fields
|
|
8
|
+
|
|
9
|
+
| Field | Purpose |
|
|
10
|
+
|-------|---------|
|
|
11
|
+
| `baseBranch` | Integration branch PRs target and merge into |
|
|
12
|
+
| `productionBranch` | Production branch (default `main`) used for merge success routing |
|
|
13
|
+
| `integrationPreviewUrl` | Stable dev/staging preview link for merge comments |
|
|
14
|
+
| `integrationSuccessStatus` | Linear status after integration merge (default `Merged to Dev`) |
|
|
15
|
+
| `productionSuccessStatus` | Linear status after production merge (default `Merged / Deployed`) |
|
|
16
|
+
|
|
17
|
+
When `baseBranch === productionBranch`, behavior matches the original single-branch workflow: merge success moves the issue to **`Merged / Deployed`** and production deployment polling runs as before.
|
|
18
|
+
|
|
19
|
+
When `baseBranch !== productionBranch`, merge success moves the issue to **`Merged to Dev`**, merge comments note the change is **not yet in production**, and production deployment polling is skipped. After manually promoting `dev` → `main`, run production sync:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run harness:sync-production -- --repo target-app
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
For a single issue:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
npm run harness:sync-production -- --issue WES-19
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Automatic sync:** after `main` is updated, the target repo can dispatch `production_promoted` to the harness GitHub Actions workflow (see [`docs/production-sync-automation.md`](production-sync-automation.md)). Manual CLI remains the fallback.
|
|
32
|
+
|
|
33
|
+
Harness Actions also supports **`workflow_dispatch`** with input **`sync_repo=target-app`** on **Harness Auto Runner**. Use **`sync_dry_run=true`** (default) to validate sync routing without Linear writes; set **`sync_dry_run=false`** only for live updates.
|
|
34
|
+
|
|
35
|
+
**Promotion guidance:** prefer merge or fast-forward when promoting `dev` → `main`. Squash promotion may make the original dev merge commit unreachable; sync will correctly no-op with `production_not_promoted`.
|
|
36
|
+
|
|
37
|
+
## Linear setup (before changing target repo `baseBranch`)
|
|
38
|
+
|
|
39
|
+
1. Add workflow status **`Merged to Dev`** on the team used by harness issues.
|
|
40
|
+
2. Set `linear.transitionalStatuses.mergedToDev` in `harness.config.json` if your team uses a different label.
|
|
41
|
+
3. Optionally set repo-level `integrationSuccessStatus` / `productionSuccessStatus` overrides.
|
|
42
|
+
|
|
43
|
+
## GitHub setup
|
|
44
|
+
|
|
45
|
+
1. Create the integration branch on the target repo (e.g. `dev` from `main`).
|
|
46
|
+
2. Set `repos[].baseBranch` to that branch.
|
|
47
|
+
3. Run `npm run harness:doctor -- --profile merge` with `GITHUB_TOKEN` set — doctor verifies each mapped repo has the configured base branch and that the token can write PR head branches for integration repair.
|
|
48
|
+
|
|
49
|
+
## Validation
|
|
50
|
+
|
|
51
|
+
- **Preflight / doctor:** `assertBaseBranchExists()` and PR head-branch write permission checks when `GITHUB_TOKEN` is available.
|
|
52
|
+
- **Implementation / handoff / revision / merge:** PR base must match `repos[].baseBranch` (`wrong_pr_base_branch` if not).
|
|
53
|
+
|
|
54
|
+
## Concurrent issues
|
|
55
|
+
|
|
56
|
+
Multiple issues can run planning, implementation, handoff, and revision in parallel (per-issue GitHub Actions concurrency). Merge into the same integration branch is serialized: the auto-runner gate resolves `repoConfigId` and `baseBranch`, then routes merge work to a queue group `harness-merge-{repoConfigId}-{baseBranch}` with `queue: max`. A second issue waiting to merge into integration branch runs only after the first merge completes; the runner re-inspects PR mergeability before merging.
|
|
57
|
+
|
|
58
|
+
If a queued PR becomes `behind` or `dirty` after another PR lands, the merge runner now attempts automatic integration repair while the issue remains **Merging**:
|
|
59
|
+
|
|
60
|
+
1. Deterministic GitHub update-branch merges the latest base branch into the PR branch.
|
|
61
|
+
2. If GitHub reports conflicts, a Composer 2.5 repair agent starts on the PR branch, fetches `origin/<baseBranch>`, runs the local base-into-head merge, resolves conflicts, commits, validates, and pushes the PR branch.
|
|
62
|
+
3. If validation and PR checks pass, the runner returns directly to merge without PM Review.
|
|
63
|
+
4. If repair fails, is ambiguous, or needs broader product judgment, the issue moves to **Blocked** with a clear reason.
|
|
64
|
+
|
|
65
|
+
Repair may edit conflict files and direct dependency-closure files required for validation. It must not push to the integration or production branch directly.
|
|
66
|
+
|
|
67
|
+
## Example (target-app)
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"id": "target-app",
|
|
72
|
+
"targetRepo": "https://github.com/owner/example-target-app",
|
|
73
|
+
"baseBranch": "dev",
|
|
74
|
+
"productionBranch": "main",
|
|
75
|
+
"integrationPreviewUrl": "https://staging.example.com",
|
|
76
|
+
"productionUrl": "https://www.example.com",
|
|
77
|
+
"integrationSuccessStatus": "Merged to Dev",
|
|
78
|
+
"productionSuccessStatus": "Merged / Deployed"
|
|
79
|
+
}
|
|
80
|
+
```
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Evals
|
|
2
|
+
|
|
3
|
+
Human-readable readiness rubrics and eval contracts for the agentic product development harness.
|
|
4
|
+
|
|
5
|
+
## v0.1 approach
|
|
6
|
+
|
|
7
|
+
Evals start as **manual scorecards**, not automated test suites. Use [`templates/eval-scorecard.md`](../templates/eval-scorecard.md) to record pass / partial / fail / N-A per criterion with evidence and human sign-off.
|
|
8
|
+
|
|
9
|
+
## Why manual first
|
|
10
|
+
|
|
11
|
+
Automated evals are only useful when the criteria are stable. v0.1 runs against real issues (starting with the target repo) will reveal which criteria repeat and which are one-offs.
|
|
12
|
+
|
|
13
|
+
## Future direction (planned)
|
|
14
|
+
|
|
15
|
+
| Phase | Eval capability |
|
|
16
|
+
|-------|-----------------|
|
|
17
|
+
| v0.1 | Manual rubrics in markdown |
|
|
18
|
+
| v0.3 eval contract | **Deferred** — manual rubrics remain; see [`docs/releases/v0.3.0.md`](../docs/releases/v0.3.0.md) |
|
|
19
|
+
| Later | Optional automated checks (lint, tests, preview smoke) tied to scorecard rows |
|
|
20
|
+
|
|
21
|
+
## What belongs here
|
|
22
|
+
|
|
23
|
+
- Standard criteria sets by work type (when validated)
|
|
24
|
+
- Example completed scorecards from real runs
|
|
25
|
+
- Notes on criteria that failed or were ambiguous
|
|
26
|
+
|
|
27
|
+
## What does not belong here yet
|
|
28
|
+
|
|
29
|
+
- CI scripts or test runners
|
|
30
|
+
- Auto-grading agents
|
|
31
|
+
- Production gate enforcement
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Examples
|
|
2
|
+
|
|
3
|
+
Documented harness runs against real target repositories.
|
|
4
|
+
|
|
5
|
+
## Available examples
|
|
6
|
+
|
|
7
|
+
**Run 001 (target app):** [`runs/001-target-app-github-link/`](runs/001-target-app-github-link/) — manual v0.1 loop documented with artifacts and retrospective in [`docs/research/001-manual-run-retrospective.md`](../docs/research/001-manual-run-retrospective.md).
|
|
8
|
+
|
|
9
|
+
## Target repo
|
|
10
|
+
|
|
11
|
+
**Primary target:** [`owner/example-target-app`](https://github.com/owner/example-target-app)
|
|
12
|
+
|
|
13
|
+
**Expected artifacts per run:**
|
|
14
|
+
|
|
15
|
+
- Filled `linear-issue.md` (or equivalent issue export)
|
|
16
|
+
- `implementation-plan.md`
|
|
17
|
+
- `eval-scorecard.md`
|
|
18
|
+
- `pr-readiness-report.md`
|
|
19
|
+
- Short retrospective in `docs/research/`
|
|
20
|
+
|
|
21
|
+
## What to include in an example
|
|
22
|
+
|
|
23
|
+
- Issue summary and scope
|
|
24
|
+
- What the agent changed (high level)
|
|
25
|
+
- Eval results and open questions
|
|
26
|
+
- What would change in templates or rubrics next time
|
|
27
|
+
|
|
28
|
+
## What not to include
|
|
29
|
+
|
|
30
|
+
- Secrets, tokens, or private URLs
|
|
31
|
+
- Unreviewed code dumps
|
|
32
|
+
- Claims that the run was fully automated
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Run 001: Target app GitHub link
|
|
2
|
+
|
|
3
|
+
First manual v0.1 harness run against [`example-target-app`](https://github.com/owner/example-target-app).
|
|
4
|
+
|
|
5
|
+
**Run status: completed** — merged and deployed. This proves one manual loop, not full harness automation.
|
|
6
|
+
|
|
7
|
+
## Current status
|
|
8
|
+
|
|
9
|
+
| Item | State |
|
|
10
|
+
|------|-------|
|
|
11
|
+
| Run | **Completed** |
|
|
12
|
+
| PR | **Merged** — [#1](https://github.com/owner/example-target-app/pull/1) (squash merge) |
|
|
13
|
+
| Main commit | `9a58a7e283b1bee07fc33894174830e2578e08b5` |
|
|
14
|
+
| Feature branch | Kept — local and `origin/feat/target-app-github-link` |
|
|
15
|
+
| Production deployment | **Success** — [Vercel deployment](https://vercel.com/kinterra-team-url/example-target-app/8TPFTiY79nviGt95rwFWMi2DVeqq) |
|
|
16
|
+
| PM / product sign-off | **Pass** |
|
|
17
|
+
| Retrospective | [`docs/research/001-manual-run-retrospective.md`](../../docs/research/001-manual-run-retrospective.md) |
|
|
18
|
+
|
|
19
|
+
## Why this was chosen as the first v0.1 harness test
|
|
20
|
+
|
|
21
|
+
- **Small, bounded scope** — one product surface (contact or footer), one outbound link, easy to eval.
|
|
22
|
+
- **Real target-app value** — hiring managers reviewing the live site can reach the public repo without hunting on GitHub.
|
|
23
|
+
- **Exercises the full loop** — issue → plan → repo inspection → implementation → eval → PR readiness → merge, without touching backend, auth, or case-study content.
|
|
24
|
+
- **Forces repo discovery** — the implementation agent must inspect the target app codebase before choosing placement (contact vs footer) and matching existing link patterns.
|
|
25
|
+
|
|
26
|
+
## What success means
|
|
27
|
+
|
|
28
|
+
1. A GitHub link to `https://github.com/owner/example-target-app` appears in the appropriate contact/footer area. **Done** — contact section.
|
|
29
|
+
2. The link is visually consistent, accessible, and does not break existing contact, resume, or LinkedIn behavior. **Done**
|
|
30
|
+
3. Lint/build pass; scope stays narrow (no unrelated refactors). **Done**
|
|
31
|
+
4. All run artifacts filled through merge and retrospective. **Done**
|
|
32
|
+
5. Retrospective captured in `docs/research/` — **not** encoded as skills yet. **Done**
|
|
33
|
+
|
|
34
|
+
## What should be learned before creating reusable skills
|
|
35
|
+
|
|
36
|
+
See [`docs/research/001-manual-run-retrospective.md`](../../docs/research/001-manual-run-retrospective.md) for findings from this run.
|
|
37
|
+
|
|
38
|
+
## Artifacts in this folder
|
|
39
|
+
|
|
40
|
+
| File | Status |
|
|
41
|
+
|------|--------|
|
|
42
|
+
| [`linear-issue.md`](linear-issue.md) | Defined |
|
|
43
|
+
| [`implementation-plan.md`](implementation-plan.md) | Execution complete — contact section placement confirmed |
|
|
44
|
+
| [`eval-scorecard.md`](eval-scorecard.md) | Complete — all Pass; PM sign-off recorded |
|
|
45
|
+
| [`pr-readiness-report.md`](pr-readiness-report.md) | Complete — merged and deployed |
|
|
46
|
+
|
|
47
|
+
## Next step
|
|
48
|
+
|
|
49
|
+
Plan **run 002** — see retrospective for suggested hypothesis. Do not create skills or automations until a second manual loop validates repeated patterns.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Eval scorecard: Add GitHub link to site contact or footer
|
|
2
|
+
|
|
3
|
+
<!-- Run 001 — complete; merged and deployed. Based on templates/eval-scorecard.md -->
|
|
4
|
+
|
|
5
|
+
## Run metadata
|
|
6
|
+
|
|
7
|
+
| Field | Value |
|
|
8
|
+
|-------|-------|
|
|
9
|
+
| Issue | [`linear-issue.md`](linear-issue.md) |
|
|
10
|
+
| Target repo | `owner/example-target-app` |
|
|
11
|
+
| Target local path | `/Users/weston/Code/example-target-app` |
|
|
12
|
+
| Branch / PR | `feat/target-app-github-link` / [PR #1](https://github.com/owner/example-target-app/pull/1) — **merged** |
|
|
13
|
+
| Feature commit | `1a4a4e3406bc9e8e7f86c85fc2660ad71263e92a` — Add GitHub contact link |
|
|
14
|
+
| Main commit (post-merge) | `9a58a7e283b1bee07fc33894174830e2578e08b5` |
|
|
15
|
+
| Production deployment | [Success](https://vercel.com/kinterra-team-url/example-target-app/8TPFTiY79nviGt95rwFWMi2DVeqq) |
|
|
16
|
+
| Agent / executor | Cursor (manual v0.1 loop) |
|
|
17
|
+
| Date | 2026-07-06 |
|
|
18
|
+
|
|
19
|
+
## Scoring legend
|
|
20
|
+
|
|
21
|
+
| Score | Meaning |
|
|
22
|
+
|-------|---------|
|
|
23
|
+
| **Pass** | Criterion fully met; evidence attached |
|
|
24
|
+
| **Partial** | Mostly met; minor gaps documented |
|
|
25
|
+
| **Fail** | Not met; blocks readiness |
|
|
26
|
+
| **N/A** | Not applicable to this work type |
|
|
27
|
+
|
|
28
|
+
## Criteria
|
|
29
|
+
|
|
30
|
+
| # | Criterion | Score | Evidence |
|
|
31
|
+
|---|-----------|-------|----------|
|
|
32
|
+
| 1 | GitHub link exists and points to `https://github.com/owner/example-target-app` | **Pass** | Shipped on `main`; live in contact section |
|
|
33
|
+
| 2 | Link is visually consistent with existing contact/social links | **Pass** | Card pattern; inline GitHub SVG (Lucide unavailable) — accepted at merge |
|
|
34
|
+
| 3 | Link is accessible (keyboard focus, visible name or aria-label, sufficient contrast) | **Pass** | Manual inspection; no post-merge accessibility issues reported |
|
|
35
|
+
| 4 | No existing contact, resume, or LinkedIn behavior breaks | **Pass** | Verified pre-merge and post-deploy |
|
|
36
|
+
| 5 | `npm run lint` passes | **Pass** | Pre-merge |
|
|
37
|
+
| 6 | `npm run build` passes | **Pass** | Pre-merge |
|
|
38
|
+
| 7 | Scope stayed narrow — no unrelated file changes | **Pass** | Three files only |
|
|
39
|
+
| 8 | Matches acceptance criteria from issue (placement, new tab, mobile check) | **Pass** | Contact section; production deployment success |
|
|
40
|
+
|
|
41
|
+
## Known deviation (acceptable)
|
|
42
|
+
|
|
43
|
+
| Deviation | Resolution |
|
|
44
|
+
|-----------|------------|
|
|
45
|
+
| Planned Lucide `Github` icon unavailable in `lucide-react@^1.20.0` | Inline GitHub SVG; merged and deployed without issue |
|
|
46
|
+
|
|
47
|
+
## Summary
|
|
48
|
+
|
|
49
|
+
- **Overall readiness:** **Complete** — merged, deployed, PM/product sign-off recorded
|
|
50
|
+
- **Blocking failures:** None
|
|
51
|
+
|
|
52
|
+
## Human sign-off
|
|
53
|
+
|
|
54
|
+
- [x] PM / owner reviewed scorecard
|
|
55
|
+
- Sign-off: Weston Uribe (PM/product)
|
|
56
|
+
- Date: 2026-07-06
|
|
57
|
+
|
|
58
|
+
## Follow-ups
|
|
59
|
+
|
|
60
|
+
Carried to [`docs/research/001-manual-run-retrospective.md`](../../docs/research/001-manual-run-retrospective.md):
|
|
61
|
+
|
|
62
|
+
- Add icon/library availability check to implementation plan template
|
|
63
|
+
- Add explicit mobile viewport step to validation plan for UI runs
|
package/workspace-snapshot/files/examples/runs/001-target-app-github-link/implementation-plan.md
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Implementation plan: Add GitHub link to site contact or footer
|
|
2
|
+
|
|
3
|
+
<!-- Run 001 — PRELIMINARY. Human approval required before execution. Based on templates/implementation-plan.md -->
|
|
4
|
+
|
|
5
|
+
## Issue reference
|
|
6
|
+
|
|
7
|
+
- Issue: [`linear-issue.md`](linear-issue.md)
|
|
8
|
+
- Target repo: `owner/example-target-app`
|
|
9
|
+
- Target local path: `/Users/weston/Code/example-target-app`
|
|
10
|
+
- Branch name (proposed): `feat/target-app-github-link`
|
|
11
|
+
|
|
12
|
+
## Context
|
|
13
|
+
|
|
14
|
+
Add a GitHub link so hiring managers can reach `https://github.com/owner/example-target-app` from the live target app site. Scope is limited to one new outbound link integrated with existing contact/social patterns.
|
|
15
|
+
|
|
16
|
+
**This plan is preliminary.** The implementation agent **must inspect the target repo** before writing final file-level changes. Do not guess paths or components from the harness repo alone.
|
|
17
|
+
|
|
18
|
+
## Required repo inspection (before implementation)
|
|
19
|
+
|
|
20
|
+
The agent must determine:
|
|
21
|
+
|
|
22
|
+
1. **Placement** — Whether the link belongs in the contact section, footer, or both (issue allows either; choose the pattern that matches how resume/LinkedIn are surfaced).
|
|
23
|
+
2. **Source of truth** — Where site contact/social links are defined (e.g. `components/custom/contact-section.tsx`, `lib/content.ts`, footer layout, or similar).
|
|
24
|
+
3. **Existing link patterns** — How external links are implemented (icons, labels, `target`, `rel`, styling utilities, marquees vs inline lists).
|
|
25
|
+
4. **Validation commands** — What scripts exist in `package.json` (`lint`, `build`, `dev`) and any repo-specific checks in `AGENTS.md`.
|
|
26
|
+
|
|
27
|
+
Document findings in this plan (update the **Files to touch** table) before making edits.
|
|
28
|
+
|
|
29
|
+
## Approach (high level)
|
|
30
|
+
|
|
31
|
+
1. **Inspect** — Read contact/footer components and content modules; list candidate insertion points.
|
|
32
|
+
2. **Decide placement** — Pick contact, footer, or both; note rationale in PR description.
|
|
33
|
+
3. **Implement** — Add GitHub link using the same pattern as existing social links (no new design language).
|
|
34
|
+
4. **Validate** — Run lint/build; manual desktop + mobile check; verify resume/LinkedIn/contact unchanged.
|
|
35
|
+
5. **Report back** — Update harness run artifacts (`eval-scorecard.md`, `pr-readiness-report.md`) in this repo after implementation.
|
|
36
|
+
|
|
37
|
+
## Files to touch
|
|
38
|
+
|
|
39
|
+
| File / area | Change |
|
|
40
|
+
|-------------|--------|
|
|
41
|
+
| _TBD after repo inspection_ | Add GitHub link entry and/or UI |
|
|
42
|
+
| _TBD after repo inspection_ | Icon/asset if pattern uses SVG logos in `public/` |
|
|
43
|
+
|
|
44
|
+
## Files explicitly out of scope
|
|
45
|
+
|
|
46
|
+
- Case study routes under `app/work/`
|
|
47
|
+
- Site narrative content unrelated to contact links
|
|
48
|
+
- `next.config`, deployment config, env files
|
|
49
|
+
- Harness repo (`agentic-product-development-harness`)
|
|
50
|
+
- Dependencies unless an existing social icon pattern requires a shared asset only
|
|
51
|
+
|
|
52
|
+
## Risks
|
|
53
|
+
|
|
54
|
+
| Risk | Mitigation |
|
|
55
|
+
|------|------------|
|
|
56
|
+
| Wrong placement breaks visual hierarchy | Follow existing contact/footer structure; PM review on preview |
|
|
57
|
+
| Duplicate links if both contact and footer add GitHub | Prefer single canonical placement unless site already duplicates social links in both |
|
|
58
|
+
| Accessibility regression | Match focus/aria patterns from LinkedIn or resume links |
|
|
59
|
+
| Broken external URL | Hard-code canonical repo URL; verify in browser |
|
|
60
|
+
|
|
61
|
+
## Validation plan
|
|
62
|
+
|
|
63
|
+
- [ ] Manual check: GitHub link visible in chosen section(s) on desktop and mobile
|
|
64
|
+
- [ ] Manual check: Link opens correct repo in new tab
|
|
65
|
+
- [ ] Manual check: Resume, LinkedIn, and contact behavior unchanged
|
|
66
|
+
- [ ] `npm run lint` — pass
|
|
67
|
+
- [ ] `npm run build` — pass
|
|
68
|
+
- [ ] Preview URL review (local or Vercel) — PM sign-off
|
|
69
|
+
|
|
70
|
+
## Rollback
|
|
71
|
+
|
|
72
|
+
Revert the feature branch commit(s) or remove the added link entries and icon asset. No migrations or data changes expected.
|
|
73
|
+
|
|
74
|
+
## Approval
|
|
75
|
+
|
|
76
|
+
- [ ] Repo inspection complete; **Files to touch** table updated
|
|
77
|
+
- [ ] Plan reviewed by human before execution
|
|
78
|
+
- Approved by: _______________
|
|
79
|
+
- Date: _______________
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Issue: Add GitHub link to site contact or footer
|
|
2
|
+
|
|
3
|
+
<!-- Run 001 — manual v0.1 harness. Based on templates/linear-issue.md -->
|
|
4
|
+
|
|
5
|
+
## Problem
|
|
6
|
+
|
|
7
|
+
Hiring managers and technical reviewers visiting the live target app site cannot easily reach the public GitHub repository from the site. The repo was recently renamed and publicized (`owner/example-target-app`); the target app should surface that link where contact and professional links already live so reviewers can inspect code, commit history, and harness-related work without leaving the site context.
|
|
8
|
+
|
|
9
|
+
## User / job story
|
|
10
|
+
|
|
11
|
+
As a **hiring manager or technical reviewer**, I want **a clear GitHub link on the target app site** so that **I can open the public repository directly and evaluate how the candidate builds and documents product work**.
|
|
12
|
+
|
|
13
|
+
## Acceptance criteria
|
|
14
|
+
|
|
15
|
+
- [ ] A visible GitHub link is present in the target app **contact section and/or footer** (exact placement TBD after repo inspection).
|
|
16
|
+
- [ ] The link URL is `https://github.com/owner/example-target-app`.
|
|
17
|
+
- [ ] The link opens in a new tab with appropriate `rel` attributes (e.g. `noopener noreferrer`) consistent with other external links on the site.
|
|
18
|
+
- [ ] Visual treatment matches existing contact/social link patterns (icon, label, spacing, hover/focus states).
|
|
19
|
+
- [ ] Link is keyboard-focusable and has an accessible name (visible text and/or `aria-label` consistent with site patterns).
|
|
20
|
+
- [ ] Existing contact, resume, and LinkedIn links continue to work unchanged.
|
|
21
|
+
- [ ] `npm run lint` and `npm run build` pass in the target repo.
|
|
22
|
+
|
|
23
|
+
## Out of scope
|
|
24
|
+
|
|
25
|
+
- Changing copy or layout of unrelated unrelated site sections (hero, case studies, about narrative).
|
|
26
|
+
- Adding links to other GitHub repos or private repositories.
|
|
27
|
+
- Redesigning the entire contact or footer component.
|
|
28
|
+
- Analytics, tracking, or new dependencies unless required by an existing link pattern.
|
|
29
|
+
- Updating Vercel or GitHub repo settings.
|
|
30
|
+
- Implementing harness automation, skills, or Linear integration.
|
|
31
|
+
|
|
32
|
+
## Context and links
|
|
33
|
+
|
|
34
|
+
- **Target repo (GitHub):** `owner/example-target-app`
|
|
35
|
+
- **Target local path:** `/Users/weston/Code/example-target-app`
|
|
36
|
+
- **Live site:** https://www.example.com (or local dev preview)
|
|
37
|
+
- **Harness run folder:** `examples/runs/001-target-app-github-link/`
|
|
38
|
+
- Related: repo rename from `wedge-1`; public repo readiness work on `main`
|
|
39
|
+
|
|
40
|
+
## Product review method
|
|
41
|
+
|
|
42
|
+
- **Primary:** Local preview via `npm run dev` in the target repo (desktop + mobile viewport).
|
|
43
|
+
- **Optional:** Vercel preview URL on the PR branch for hiring-manager-style review.
|
|
44
|
+
|
|
45
|
+
## Human approval gates
|
|
46
|
+
|
|
47
|
+
| Gate | Owner | When |
|
|
48
|
+
|------|-------|------|
|
|
49
|
+
| Issue + preliminary plan approved | PM / product | Before implementation |
|
|
50
|
+
| Implementation complete + scorecard | PM / product | Before PR |
|
|
51
|
+
| Code review | Engineering | Before merge |
|
|
52
|
+
| Product review on preview | PM / product | Before or with merge |
|
|
53
|
+
|
|
54
|
+
## Eval hints
|
|
55
|
+
|
|
56
|
+
Criteria for [`eval-scorecard.md`](eval-scorecard.md):
|
|
57
|
+
|
|
58
|
+
| Criterion | Priority |
|
|
59
|
+
|-----------|----------|
|
|
60
|
+
| GitHub link exists and points to correct repo URL | Required |
|
|
61
|
+
| Link visually consistent with existing social/contact links | Required |
|
|
62
|
+
| Link accessible (focus, name, contrast) | Required |
|
|
63
|
+
| No regression to contact / resume / LinkedIn | Required |
|
|
64
|
+
| Lint and build pass | Required |
|
|
65
|
+
| Scope stayed narrow (no drive-by changes) | Required |
|
|
66
|
+
| Looks correct on mobile | Nice-to-have |
|
|
67
|
+
|
|
68
|
+
## Definition of ready
|
|
69
|
+
|
|
70
|
+
- [x] Problem and acceptance criteria are clear
|
|
71
|
+
- [x] Out of scope is documented
|
|
72
|
+
- [x] Target repo identified
|
|
73
|
+
- [ ] PM / owner assigned for review — Weston Uribe
|
|
74
|
+
- [ ] Implementation plan approved after target repo inspection
|