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,272 @@
|
|
|
1
|
+
# Release process
|
|
2
|
+
|
|
3
|
+
Operator guide for harness releases: GitHub source release plus public npm package `p-dev-harness`.
|
|
4
|
+
|
|
5
|
+
**Related:** [`v0.3.1.md`](v0.3.1.md) (current release contract), [`v0.3.0.md`](v0.3.0.md) (historical), [`CHANGELOG.md`](../../CHANGELOG.md), [`docs/p-dev.md`](../p-dev.md)
|
|
6
|
+
|
|
7
|
+
## Variables
|
|
8
|
+
|
|
9
|
+
Use these placeholders throughout:
|
|
10
|
+
|
|
11
|
+
| Variable | Example | Meaning |
|
|
12
|
+
|----------|---------|---------|
|
|
13
|
+
| `VERSION` | `0.3.1` | SemVer package/root version |
|
|
14
|
+
| `TAG` | `v0.3.1` | Annotated git tag |
|
|
15
|
+
| `RELEASE_SHA` | merge commit on `main` | Exact post-merge release commit |
|
|
16
|
+
| `TARBALL` | `packages/p-dev/p-dev-harness-0.3.1.tgz` | Exact npm publish artifact |
|
|
17
|
+
|
|
18
|
+
## Summary
|
|
19
|
+
|
|
20
|
+
The release process has distinct phases:
|
|
21
|
+
|
|
22
|
+
1. **Release-preparation PR** — versions, docs, tests, release contract (no tag/npm/release mutations)
|
|
23
|
+
2. **Embedded workspace snapshot validation** — deterministic snapshot/manifest generation from clean `RELEASE_SHA` checkout
|
|
24
|
+
3. **Exact tarball validation** — build and smoke-test `TARBALL` at `RELEASE_SHA`
|
|
25
|
+
4. **npm publication** — publish the exact validated tarball
|
|
26
|
+
5. **Annotated git tag** — primary `TAG` at `RELEASE_SHA`
|
|
27
|
+
6. **GitHub release** — curated notes from `docs/releases/v<VERSION>.md`
|
|
28
|
+
7. **Post-release finalization PR** — record immutable tag/npm evidence
|
|
29
|
+
|
|
30
|
+
Do **not** push directly to `main`, force-push, overwrite tags, or republish npm versions.
|
|
31
|
+
|
|
32
|
+
### Legacy template containment (v0.3.0 only)
|
|
33
|
+
|
|
34
|
+
`weston-uribe/p-dev-harness-template` is a **frozen legacy compatibility artifact** for `p-dev-harness@0.3.0` template-based provisioning.
|
|
35
|
+
|
|
36
|
+
For **0.3.1 and later**:
|
|
37
|
+
|
|
38
|
+
- Do **not** advance, repurpose, or resync the template repository `main` branch for new package versions.
|
|
39
|
+
- Do **not** move or recreate the existing template `v0.3.0` tag.
|
|
40
|
+
- Snapshot transparency comes from the primary repository release commit plus the npm tarball `workspace-snapshot/manifest.json`.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Phase 1 — Release-preparation PR
|
|
45
|
+
|
|
46
|
+
Merge to `main`:
|
|
47
|
+
|
|
48
|
+
- Version bumps (`VERSION` root, `p-dev-harness@VERSION`)
|
|
49
|
+
- `CHANGELOG.md`, `docs/releases/v<VERSION>.md`, truth-audit docs
|
|
50
|
+
- Package publication metadata and tests
|
|
51
|
+
- Validation on the PR branch
|
|
52
|
+
|
|
53
|
+
**Do not run during the release-prep PR:**
|
|
54
|
+
|
|
55
|
+
- `git tag`, `git push` (tags)
|
|
56
|
+
- `npm publish`
|
|
57
|
+
- `gh release create`
|
|
58
|
+
- Live remote setup mutations against production destinations
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Phase 2 — Embedded workspace snapshot validation
|
|
63
|
+
|
|
64
|
+
After primary release-prep PR merges:
|
|
65
|
+
|
|
66
|
+
1. Record `RELEASE_SHA` (merge commit on `main`)
|
|
67
|
+
2. From a **clean checkout** at `RELEASE_SHA`, run:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
git checkout "$RELEASE_SHA"
|
|
71
|
+
npm ci
|
|
72
|
+
npm run build
|
|
73
|
+
npm run package:p-dev:prepare
|
|
74
|
+
npm run package:p-dev:pack
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Package preparation requires a clean working tree with `HEAD` equal to `RELEASE_SHA`. Do **not** use `P_DEV_SNAPSHOT_SOURCE_REF`.
|
|
78
|
+
|
|
79
|
+
3. Inspect `packages/p-dev/workspace-snapshot/manifest.json`:
|
|
80
|
+
- `packageVersion` matches `packages/p-dev/package.json`
|
|
81
|
+
- `sourceCommit` equals `RELEASE_SHA`
|
|
82
|
+
- `snapshotSha256`, `snapshotContentId`, and `gitRootTreeSha1` are present
|
|
83
|
+
4. Inspect the packed tarball:
|
|
84
|
+
- Contains `package/workspace-snapshot/manifest.json` and curated `package/workspace-snapshot/files/**`
|
|
85
|
+
- Excludes local secrets, operator state, generated caches, and unrelated generated package outputs
|
|
86
|
+
5. Record tarball byte size and SHA-256 for release evidence
|
|
87
|
+
|
|
88
|
+
**Do not** mutate `weston-uribe/p-dev-harness-template` for 0.3.1+ releases.
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Phase 3 — npm preflight
|
|
93
|
+
|
|
94
|
+
Before publication:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm config get registry
|
|
98
|
+
npm whoami --registry=https://registry.npmjs.org/
|
|
99
|
+
npm view p-dev-harness --registry=https://registry.npmjs.org/ --json
|
|
100
|
+
npm view p-dev-harness@VERSION --registry=https://registry.npmjs.org/ --json
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Stop** if:
|
|
104
|
+
|
|
105
|
+
- Not authenticated or not authorized to publish
|
|
106
|
+
- `p-dev-harness@VERSION` already exists with **different bytes** than the intended `TARBALL`
|
|
107
|
+
- Package name is owned by someone else
|
|
108
|
+
|
|
109
|
+
If `p-dev-harness@VERSION` already exists with **identical bytes**, treat npm publication as complete and reconcile tag/release against the same `RELEASE_SHA`.
|
|
110
|
+
|
|
111
|
+
Never print tokens, OTPs, or secrets.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Phase 4 — Exact tarball and validation
|
|
116
|
+
|
|
117
|
+
At `RELEASE_SHA` in a clean working tree:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
git checkout "$RELEASE_SHA"
|
|
121
|
+
npm ci
|
|
122
|
+
npm run build
|
|
123
|
+
npm test
|
|
124
|
+
npm run test:webhook
|
|
125
|
+
npm run package:p-dev:prepare
|
|
126
|
+
npm run package:p-dev:pack
|
|
127
|
+
npm run package:p-dev:inspect
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Record tarball bytes, SHA-1, SHA-256, manifest, unpacked size, file count.
|
|
131
|
+
|
|
132
|
+
Tarball launcher smoke (fresh `P_DEV_HOME`):
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
TARBALL="packages/p-dev/p-dev-harness-VERSION.tgz"
|
|
136
|
+
WORKDIR=$(mktemp -d)
|
|
137
|
+
export P_DEV_HOME="$WORKDIR/workspace"
|
|
138
|
+
cd "$WORKDIR"
|
|
139
|
+
npx --yes "file:/absolute/path/to/$TARBALL" --no-open
|
|
140
|
+
# verify /settings/configure HTTP 200, stop, relaunch with same P_DEV_HOME
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Dry-run publish:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm publish "$TARBALL" --dry-run --access public --registry=https://registry.npmjs.org/
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Phase 5 — npm publication
|
|
152
|
+
|
|
153
|
+
Publish the **exact already-tested tarball** (do not rebuild between smoke and publish):
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npm publish "$TARBALL" --access public --registry=https://registry.npmjs.org/
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
If npm requests OTP, enter it interactively. **Never** place OTP or token in files, commands reported in PRs, or logs.
|
|
160
|
+
|
|
161
|
+
Verify:
|
|
162
|
+
|
|
163
|
+
```bash
|
|
164
|
+
npm view p-dev-harness@VERSION name version dist-tags.latest dist.shasum dist.integrity engines bin repository license
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Registry smoke from fresh directory:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
WORKDIR=$(mktemp -d)
|
|
171
|
+
export P_DEV_HOME="$WORKDIR/workspace"
|
|
172
|
+
cd "$WORKDIR"
|
|
173
|
+
npx --yes p-dev-harness@VERSION --no-open
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Phase 6 — Primary tag and GitHub release
|
|
179
|
+
|
|
180
|
+
**After** npm publication verification:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
git tag -a "$TAG" "$RELEASE_SHA" -m "$TAG"
|
|
184
|
+
git rev-parse "$TAG^{}" # must equal RELEASE_SHA
|
|
185
|
+
git push origin "$TAG"
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Verify remote tag resolves to `RELEASE_SHA`.
|
|
189
|
+
|
|
190
|
+
Create GitHub release:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
gh release create "$TAG" \
|
|
194
|
+
--title "$TAG — Immutable workspace provisioning" \
|
|
195
|
+
--notes-file "docs/releases/v$VERSION.md" \
|
|
196
|
+
--latest
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
- Do **not** use `--generate-notes` as primary body
|
|
200
|
+
- Do **not** mark prerelease unless an actual blocker requires it
|
|
201
|
+
- Do **not** overwrite an existing tag (`git tag -f`, `git push --force`)
|
|
202
|
+
|
|
203
|
+
If npm succeeds but GitHub release fails: **do not republish**. Recover tag/release against the same `RELEASE_SHA`.
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Phase 7 — Post-release finalization PR
|
|
208
|
+
|
|
209
|
+
Branch `docs/finalize-v<VERSION>-release`:
|
|
210
|
+
|
|
211
|
+
- Update `docs/releases/v<VERSION>.md` with tagged/published status, URLs, SHAs, registry shasum/integrity, tarball metadata, live validation evidence, registry smoke result, timestamp
|
|
212
|
+
- Do **not** change released package contents or version
|
|
213
|
+
|
|
214
|
+
Merge after checks pass.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## V0.3.1 — exact commands (current example)
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
VERSION=0.3.1
|
|
222
|
+
TAG=v0.3.1
|
|
223
|
+
|
|
224
|
+
# After release-prep PR merge
|
|
225
|
+
RELEASE_SHA=$(git rev-parse origin/main)
|
|
226
|
+
git checkout main && git pull --ff-only origin main
|
|
227
|
+
git checkout "$RELEASE_SHA"
|
|
228
|
+
|
|
229
|
+
# Validate at release commit
|
|
230
|
+
npm ci && npm run build && npm test && npm run test:webhook
|
|
231
|
+
npm run package:p-dev:prepare && npm run package:p-dev:pack && npm run package:p-dev:inspect
|
|
232
|
+
TARBALL="packages/p-dev/p-dev-harness-${VERSION}.tgz"
|
|
233
|
+
|
|
234
|
+
# npm preflight + publish (interactive OTP if required)
|
|
235
|
+
npm whoami --registry=https://registry.npmjs.org/
|
|
236
|
+
npm view p-dev-harness@${VERSION} --registry=https://registry.npmjs.org/
|
|
237
|
+
npm publish "$TARBALL" --access public --registry=https://registry.npmjs.org/
|
|
238
|
+
|
|
239
|
+
# Tag and release
|
|
240
|
+
git tag -a "$TAG" "$RELEASE_SHA" -m "$TAG"
|
|
241
|
+
git push origin "$TAG"
|
|
242
|
+
gh release create "$TAG" \
|
|
243
|
+
--title "$TAG — Immutable workspace provisioning" \
|
|
244
|
+
--notes-file "docs/releases/v${VERSION}.md" \
|
|
245
|
+
--latest
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## V0.3.0 — historical commands
|
|
251
|
+
|
|
252
|
+
V0.3.0 used public-template provisioning. See [`v0.3.0.md`](v0.3.0.md) for the historical contract.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Operator notes
|
|
257
|
+
|
|
258
|
+
### Root repo vs npm package
|
|
259
|
+
|
|
260
|
+
| Artifact | `private` | Published |
|
|
261
|
+
|----------|-----------|-----------|
|
|
262
|
+
| Root `agentic-product-development-harness` | `true` | GitHub source release only |
|
|
263
|
+
| `packages/p-dev` (`p-dev-harness`) | no | Public npm |
|
|
264
|
+
|
|
265
|
+
### What not to run during release-doc PRs
|
|
266
|
+
|
|
267
|
+
- `git tag`, `git push` (tags)
|
|
268
|
+
- `npm publish`
|
|
269
|
+
- `gh release create`
|
|
270
|
+
- Live `harness:run` against production issues
|
|
271
|
+
- Linear writes
|
|
272
|
+
- Secret inspection, printing, or rotation in reports
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# V0.2.0 — Release contract
|
|
2
|
+
|
|
3
|
+
**Tag status:** Tagged — tag `v0.2.0` on `fe37e307930467d66840624c82bce9dc0b4af0f2`. GitHub release: https://github.com/weston-uribe/agentic-product-development-harness/releases/tag/v0.2.0
|
|
4
|
+
|
|
5
|
+
**Release type:** GitHub **source release** (annotated tag + curated release notes). This is **not** an npm package publication. `package.json` remains `private: true`.
|
|
6
|
+
|
|
7
|
+
## TL;DR
|
|
8
|
+
|
|
9
|
+
V0.2.0 is the first source release of the working harness: Linear-triggered Cursor Cloud Agent runs, GitHub PR lifecycle automation, production sync, and the public-repo security baseline.
|
|
10
|
+
|
|
11
|
+
It is intentionally narrow:
|
|
12
|
+
|
|
13
|
+
- Cursor only
|
|
14
|
+
- Linear only
|
|
15
|
+
- GitHub / GitHub Actions only
|
|
16
|
+
- Vercel only where preview/webhook support is configured
|
|
17
|
+
|
|
18
|
+
It is not a provider-agnostic platform and not an npm package.
|
|
19
|
+
|
|
20
|
+
## Who this is for
|
|
21
|
+
|
|
22
|
+
V0.2.0 is for a solo operator or small product/engineering team that wants to run a controlled AI-assisted product-development loop from Linear to GitHub PRs.
|
|
23
|
+
|
|
24
|
+
It assumes the operator is comfortable configuring GitHub Actions secrets, Vercel environment variables, Linear statuses, and target repo branch strategy.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Summary
|
|
29
|
+
|
|
30
|
+
V0.2.0 is a Cursor-first harness for orchestrating product work through **Linear + GitHub + GitHub Actions**. SDK runners handle planning through merge and production sync; Linear status changes trigger cloud harness runs via a Vercel webhook bridge and GitHub `repository_dispatch`.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## What ships
|
|
35
|
+
|
|
36
|
+
| Area | What ships in V0.2.0 |
|
|
37
|
+
|------|----------------------|
|
|
38
|
+
| Agent provider | Cursor Cloud Agents only (`agentProvider.id: "cursor"`) |
|
|
39
|
+
| Product system | Linear |
|
|
40
|
+
| SCM / PR | GitHub |
|
|
41
|
+
| Cloud runner | GitHub Actions |
|
|
42
|
+
| Preview provider | Vercel (when enabled) or none |
|
|
43
|
+
| SDK runners | planning, implementation, handoff, revision, merge, production sync |
|
|
44
|
+
| Auto-runner | Linear webhook → Vercel → `repository_dispatch` → GHA → `--phase auto` |
|
|
45
|
+
| Trigger statuses | Ready for Planning, Ready for Build, PR Open, Needs Revision, Ready to Merge |
|
|
46
|
+
| Issue intake | ChatGPT prompt, Cursor skill, parser template, `validate-issue` CLI |
|
|
47
|
+
| Provider seam | Internal `src/agents/` facade; Cursor adapter in `src/cursor/` |
|
|
48
|
+
| GHA hardening | Pinned actions, env-var shell safety, output redaction, CI, CodeQL, Dependabot |
|
|
49
|
+
| Security baseline | Public-repo threat model, token matrix, ruleset on `main`, Actions allowlist |
|
|
50
|
+
| Solo automation | Trusted branch → PR → required checks → merge (0 required GitHub approvals) |
|
|
51
|
+
| Target-repo integration posture | PRs → `dev`; manual `dev` → `main`; production sync updates Linear |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## What does not ship
|
|
56
|
+
|
|
57
|
+
- Provider agnosticism
|
|
58
|
+
- Claude Code, Codex, or local VS Code agent support
|
|
59
|
+
- GitLab, Bitbucket, or generic PM-system support
|
|
60
|
+
- npm package publication or npm stability guarantee
|
|
61
|
+
- Generic auto-merge for any green public PR
|
|
62
|
+
- OpenSSF Scorecard
|
|
63
|
+
- Required GitHub human approval in solo-maintainer mode
|
|
64
|
+
- Autonomous shipping without Linear/status gates
|
|
65
|
+
- Production-grade portability
|
|
66
|
+
- Automated eval runners (manual rubrics only)
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Supported stack / support matrix
|
|
71
|
+
|
|
72
|
+
| Subsystem | V0.2.0 |
|
|
73
|
+
|-----------|--------|
|
|
74
|
+
| Agent provider | Cursor Cloud Agents |
|
|
75
|
+
| Product system | Linear |
|
|
76
|
+
| SCM / PR | GitHub |
|
|
77
|
+
| Runner | GitHub Actions |
|
|
78
|
+
| Preview | Vercel or none |
|
|
79
|
+
| Model policy | Composer 2.5 (standard/basic) unless deliberately changed |
|
|
80
|
+
|
|
81
|
+
Details: [`docs/provider-portability.md`](../provider-portability.md)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Security model
|
|
86
|
+
|
|
87
|
+
- **Secrets** live in GitHub Actions secrets, Vercel environment variables, or local untracked `.env` files — never committed.
|
|
88
|
+
- **Public repo:** untrusted users cannot push to `main` or trigger secret-bearing automation without write access or a dispatch token.
|
|
89
|
+
- **`main` protection:** ruleset requires PR, required status checks (`test`, `Analyze (javascript-typescript)`), no direct push, no force push.
|
|
90
|
+
- **Actions allowlist:** only pinned first-party actions permitted.
|
|
91
|
+
- **Output redaction:** harness stdout is redacted before logs, summaries, and artifacts.
|
|
92
|
+
- **Accepted risks:** documented in [`docs/security.md`](../security.md) (dispatch token model, transitive `undici` advisory, public Actions logs).
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Solo repo automation policy
|
|
97
|
+
|
|
98
|
+
While Weston is the sole maintainer:
|
|
99
|
+
|
|
100
|
+
| Setting | Value |
|
|
101
|
+
|---------|-------|
|
|
102
|
+
| PR required to merge to `main` | Yes |
|
|
103
|
+
| Required status checks | `test`, `Analyze (javascript-typescript)` |
|
|
104
|
+
| Direct push to `main` | No |
|
|
105
|
+
| Required GitHub approvals | **0** |
|
|
106
|
+
| CODEOWNER review enforced | **No** (`.github/CODEOWNERS` exists for documentation/future enforcement) |
|
|
107
|
+
|
|
108
|
+
**Linear/status gates remain required.** Automation runs only when the issue is on an allowlisted status; merge runs only after **Ready to Merge**. This is human-controlled product judgment via Linear — not bypassed by GitHub review settings.
|
|
109
|
+
|
|
110
|
+
**Re-enable GitHub approvals and CODEOWNER review** when a second engineer joins or when accepting external contributions.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Setup prerequisites
|
|
115
|
+
|
|
116
|
+
1. Node.js 22+, npm
|
|
117
|
+
2. Linear team with harness workflow statuses configured
|
|
118
|
+
3. GitHub repo with Actions secrets: `LINEAR_API_KEY`, `CURSOR_API_KEY`, `HARNESS_GITHUB_TOKEN`
|
|
119
|
+
4. Vercel project for webhook bridge (production env vars only — see security doc)
|
|
120
|
+
5. `harness.config.json` with target repos and Linear mappings
|
|
121
|
+
6. Optional: integration branch/`main` branch setup and production sync dispatch
|
|
122
|
+
|
|
123
|
+
Operator guides:
|
|
124
|
+
|
|
125
|
+
- [`docs/getting-started.md`](../getting-started.md)
|
|
126
|
+
- [`docs/linear-watcher-setup.md`](../linear-watcher-setup.md)
|
|
127
|
+
- [`docs/target-repo-branch-setup.md`](../target-repo-branch-setup.md)
|
|
128
|
+
- [`docs/production-sync-automation.md`](../production-sync-automation.md)
|
|
129
|
+
- [`docs/security.md`](../security.md)
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Validation checklist
|
|
134
|
+
|
|
135
|
+
Run before tagging (also run locally on the release-doc PR):
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
npm ci
|
|
139
|
+
npm run build
|
|
140
|
+
npm test
|
|
141
|
+
npm run test:webhook
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Optional operator checks:
|
|
145
|
+
|
|
146
|
+
- `npm run harness:doctor`
|
|
147
|
+
- `npm run harness:validate-issue -- --file <draft> --intended-phase planning`
|
|
148
|
+
- `npm run harness:run -- --issue WES-XX --dry-run`
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Known limitations
|
|
153
|
+
|
|
154
|
+
See [CHANGELOG.md](../../CHANGELOG.md) Known limitations section for the full list. Key points:
|
|
155
|
+
|
|
156
|
+
- **Cursor-only** — no Claude Code, Codex, or local VS Code agent support
|
|
157
|
+
- **Linear + GitHub only** — not a generic PM or SCM platform
|
|
158
|
+
- **Manual evals** — automated eval contract is deferred; scorecards are human-readable rubrics
|
|
159
|
+
- **Operator setup required** — not a plug-and-play product; expect to configure secrets, statuses, and branch strategy
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Upgrade notes from v0.1
|
|
164
|
+
|
|
165
|
+
| v0.1 | V0.2.0 |
|
|
166
|
+
|------|--------|
|
|
167
|
+
| Manual Cursor loop + docs/templates | SDK runners for full lifecycle |
|
|
168
|
+
| No auto-run | Event-driven auto-runner from Linear |
|
|
169
|
+
| Implicit Cursor usage | Explicit `agentProvider.id: "cursor"` config |
|
|
170
|
+
| Single-branch merge assumption | Integration branch (`dev`) + production sync |
|
|
171
|
+
| Manual security guidance | Implemented ruleset, allowlist, redaction |
|
|
172
|
+
| `version: 0.1.0` | `version: 0.2.0` (source marker only) |
|
|
173
|
+
|
|
174
|
+
Historical v0.1 artifacts (ADRs, milestone docs, example run 001) remain valid as history.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Release readiness checklist
|
|
179
|
+
|
|
180
|
+
- [ ] Release-doc PR merged to `main`
|
|
181
|
+
- [ ] Required checks green on merge commit (`test`, `Analyze (javascript-typescript)`)
|
|
182
|
+
- [ ] `docs/releases/v0.2.0.md` and `CHANGELOG.md` reflect final scope
|
|
183
|
+
- [ ] Local validation: `npm ci`, `npm run build`, `npm test`, `npm run test:webhook`
|
|
184
|
+
- [ ] Tag preflight: `v0.2.0` tag does not already exist
|
|
185
|
+
- [ ] Annotated tag `v0.2.0` created and pushed
|
|
186
|
+
- [ ] GitHub release created with curated notes (not `--generate-notes`)
|
|
187
|
+
- [ ] Follow-up PR updates tag status in this doc to **Tagged**
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Tag / release
|
|
192
|
+
|
|
193
|
+
Do **not** create the tag in the release-doc PR. Follow [`release-process.md`](release-process.md) after merge.
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# V0.3.0 — Release contract
|
|
2
|
+
|
|
3
|
+
**Tag status:** Tagged — annotated tag `v0.3.0` on `f55f21825802a246a9db130ae5e128ad8165384d`. GitHub release: https://github.com/weston-uribe/agentic-product-development-harness/releases/tag/v0.3.0
|
|
4
|
+
|
|
5
|
+
**npm status:** Published — `p-dev-harness@0.3.0` on https://www.npmjs.com/package/p-dev-harness
|
|
6
|
+
|
|
7
|
+
**Release type:** GitHub **source release** (annotated tag + curated release notes) plus public npm CLI package **`p-dev-harness@0.3.0`**.
|
|
8
|
+
|
|
9
|
+
**npm naming note:** Registry rejected bare `p-dev` as too similar to existing [`pdev`](https://www.npmjs.com/package/pdev). The published package name is `p-dev-harness`.
|
|
10
|
+
|
|
11
|
+
## TL;DR
|
|
12
|
+
|
|
13
|
+
V0.3.0 is the guided-onboarding and distribution release. Product managers can start with `npx --yes p-dev-harness@0.3.0` without cloning the source repository. The seven-step Configure GUI automates service credentials, Linear workspace setup, Vercel webhook bridge, target repos, cloud secrets, and guarded workflow install PR finalization.
|
|
14
|
+
|
|
15
|
+
## Who this is for
|
|
16
|
+
|
|
17
|
+
- Product managers and solo operators who want guided harness onboarding
|
|
18
|
+
- Contributors who develop the harness from the source repository
|
|
19
|
+
- Teams already on Linear + GitHub + GitHub Actions + Vercel + Cursor
|
|
20
|
+
|
|
21
|
+
## Primary install command
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npx --yes p-dev-harness@0.3.0
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Requires Node.js 22+. macOS is the validated packaged platform; use `--no-open` elsewhere.
|
|
28
|
+
|
|
29
|
+
Full guide: [`docs/p-dev.md`](../p-dev.md)
|
|
30
|
+
|
|
31
|
+
## Architecture / workspace model
|
|
32
|
+
|
|
33
|
+
| Boundary | Role |
|
|
34
|
+
|----------|------|
|
|
35
|
+
| `p-dev-harness` npm package | Packaged operator shell and Configure GUI launcher |
|
|
36
|
+
| Operator workspace (`~/.p-dev`, `P_DEV_HOME`, `--workspace`) | Durable local secrets and config |
|
|
37
|
+
| Public template (`weston-uribe/p-dev-harness-template`) | Provisioning source for private harness workspace |
|
|
38
|
+
| Private `OWNER/p-dev-harness` | Managed harness workspace for cloud automation |
|
|
39
|
+
| Target repos | Product codebases the harness operates on |
|
|
40
|
+
|
|
41
|
+
## What ships
|
|
42
|
+
|
|
43
|
+
| Area | V0.3.0 |
|
|
44
|
+
|------|--------|
|
|
45
|
+
| Product install | `p-dev-harness@0.3.0` on public npm |
|
|
46
|
+
| Configure GUI | Seven-step guided setup with confirmation gates |
|
|
47
|
+
| Packaged provisioning | Private harness workspace from public template |
|
|
48
|
+
| Linear setup | Automated workspace/status configuration |
|
|
49
|
+
| Vercel bridge | Env vars, webhook, redeploy polling, signed verification |
|
|
50
|
+
| Cloud secrets | Harness repo GitHub Actions secret writes |
|
|
51
|
+
| Target workflow | Install PR create/reuse, checks, guarded merge, production verify |
|
|
52
|
+
| Canonical skills | Six skills under `.agents/skills/` |
|
|
53
|
+
| Source release | Annotated tag + GitHub release on this repository |
|
|
54
|
+
|
|
55
|
+
## Setup flow
|
|
56
|
+
|
|
57
|
+
1. Connect services (optional packaged harness workspace provisioning)
|
|
58
|
+
2. Set up Linear workspace
|
|
59
|
+
3. Set up Vercel webhook bridge
|
|
60
|
+
4. Choose target repo(s)
|
|
61
|
+
5. Check local readiness
|
|
62
|
+
6. Connect cloud secrets
|
|
63
|
+
7. Install target repo workflow (guarded auto-finalization for system-owned setup PRs)
|
|
64
|
+
|
|
65
|
+
Remote mutations require explicit confirmation. Ordinary product PRs remain governed by Linear status gates.
|
|
66
|
+
|
|
67
|
+
## Canonical skills
|
|
68
|
+
|
|
69
|
+
Implemented under `.agents/skills/`:
|
|
70
|
+
|
|
71
|
+
- `issue-intake`
|
|
72
|
+
- `code-health-audit`
|
|
73
|
+
- `architecture-evolution-audit`
|
|
74
|
+
- `security-audit`
|
|
75
|
+
- `planner`
|
|
76
|
+
- `implementation`
|
|
77
|
+
|
|
78
|
+
Deferred: `performance-cost-audit`, skill registry/package manager, manifests, provider adapters, runner-skill prompt integration. Planner and implementation SKILL.md files do not replace `src/prompts/*.md` runner implementation.
|
|
79
|
+
|
|
80
|
+
## Changes from v0.2.0
|
|
81
|
+
|
|
82
|
+
| v0.2.0 | v0.3.0 |
|
|
83
|
+
|--------|--------|
|
|
84
|
+
| Source clone only | `p-dev-harness` npm package for product onboarding |
|
|
85
|
+
| Manual/scattered setup docs | Seven-step guided Configure GUI |
|
|
86
|
+
| No canonical skills | Six canonical skills documented and implemented |
|
|
87
|
+
| No public template provisioning | Private harness workspace from public template |
|
|
88
|
+
| Manual workflow install guidance | Guarded Step 7 auto-finalization for setup PRs |
|
|
89
|
+
| Source release only | Source release + public npm package |
|
|
90
|
+
|
|
91
|
+
## Security model
|
|
92
|
+
|
|
93
|
+
- Secrets in local workspace, GitHub Actions secrets, and Vercel env vars — never in the published package
|
|
94
|
+
- Confirmation-gated remote writes with fingerprint validation
|
|
95
|
+
- Output redaction before logs and artifacts
|
|
96
|
+
- Published tarball excludes credentials and operator state
|
|
97
|
+
|
|
98
|
+
Details: [`docs/security.md`](../security.md)
|
|
99
|
+
|
|
100
|
+
## Validation evidence
|
|
101
|
+
|
|
102
|
+
- Codespaces source-based Configure GUI validation
|
|
103
|
+
- Controlled separate-account packaged onboarding through Setup complete
|
|
104
|
+
- Package pack/inspect tests and tarball smoke (Configure route HTTP 200)
|
|
105
|
+
- Registry-installed smoke: `npx --yes p-dev-harness@0.3.0 --no-open` → `/settings/configure` HTTP 200
|
|
106
|
+
- Expanded setup, GUI, and provisioning test suite
|
|
107
|
+
|
|
108
|
+
**Not validated:** full real issue lifecycle from an isolated npm-installed workspace.
|
|
109
|
+
|
|
110
|
+
## Support matrix
|
|
111
|
+
|
|
112
|
+
| Subsystem | V0.3.0 |
|
|
113
|
+
|-----------|--------|
|
|
114
|
+
| Product install | `p-dev-harness@0.3.0` (npm) |
|
|
115
|
+
| Packaged platform | macOS validated; `--no-open` elsewhere |
|
|
116
|
+
| Node.js | 22+ |
|
|
117
|
+
| Agent provider | Cursor Cloud Agents |
|
|
118
|
+
| Product system | Linear |
|
|
119
|
+
| SCM / PR | GitHub |
|
|
120
|
+
| Runner | GitHub Actions |
|
|
121
|
+
| Preview / bridge | Vercel |
|
|
122
|
+
|
|
123
|
+
## Known limitations
|
|
124
|
+
|
|
125
|
+
- Cursor-only agent provider
|
|
126
|
+
- Linear / GitHub / GitHub Actions / Vercel stack
|
|
127
|
+
- macOS validated for packaged browser auto-launch
|
|
128
|
+
- No full isolated npm issue lifecycle validated
|
|
129
|
+
- No automatic private harness workspace upgrade/sync
|
|
130
|
+
- Public template compatibility dependency
|
|
131
|
+
- Not production SaaS or provider-agnostic
|
|
132
|
+
- Manual eval rubrics where automation is not implemented
|
|
133
|
+
|
|
134
|
+
## Upgrade notes from v0.2.0
|
|
135
|
+
|
|
136
|
+
- Product managers: use `npx --yes p-dev-harness@0.3.0` instead of cloning for onboarding
|
|
137
|
+
- Contributors: continue cloning source repository
|
|
138
|
+
- Existing source-based workspaces: unchanged; operator workspace remains under `~/.p-dev` by default
|
|
139
|
+
- Template main updated for authoritative provenance after npm package rename
|
|
140
|
+
|
|
141
|
+
## Template dependency / provenance
|
|
142
|
+
|
|
143
|
+
| Artifact | SHA / value | Notes |
|
|
144
|
+
|----------|-------------|-------|
|
|
145
|
+
| Template repo | `weston-uribe/p-dev-harness-template` | Public GitHub template |
|
|
146
|
+
| Template **main** (authoritative) | `9cdf5534638194036b55d84a3d959f092c47c201` | PR [#17](https://github.com/weston-uribe/p-dev-harness-template/pull/17) — aligned to primary `f55f218`, `p-dev-harness` naming |
|
|
147
|
+
| Template tag `v0.3.0` (immutable) | `8dac15dfeef798909f9216028708c66aebd55dd6` | PR [#16](https://github.com/weston-uribe/p-dev-harness-template/pull/16) — initial sync from primary `156eab6`; **not moved** |
|
|
148
|
+
| `templateContentId` on template main | `agentic-product-development-harness-f55f21825802a246a9db130ae5e128ad8165384d-curated-v1` | Matches authoritative primary release commit |
|
|
149
|
+
|
|
150
|
+
GitHub template provisioning uses repository **default branch** (`main`), so corrected template `main` is authoritative for new private workspaces. The immutable template tag `v0.3.0` remains a historical snapshot from the pre-rename sync.
|
|
151
|
+
|
|
152
|
+
## Immutable release evidence
|
|
153
|
+
|
|
154
|
+
| Field | Value |
|
|
155
|
+
|-------|-------|
|
|
156
|
+
| **RELEASE_SHA** | `f55f21825802a246a9db130ae5e128ad8165384d` |
|
|
157
|
+
| Primary annotated tag object | `e6cdc5f69c1f394e0403bc90a14b317e2b6b134b` |
|
|
158
|
+
| Primary tag peeled commit | `f55f21825802a246a9db130ae5e128ad8165384d` |
|
|
159
|
+
| GitHub release | https://github.com/weston-uribe/agentic-product-development-harness/releases/tag/v0.3.0 |
|
|
160
|
+
| Release-prep PR | https://github.com/weston-uribe/agentic-product-development-harness/pull/56 |
|
|
161
|
+
| npm rename PR | https://github.com/weston-uribe/agentic-product-development-harness/pull/57 |
|
|
162
|
+
| npm package | `p-dev-harness@0.3.0` |
|
|
163
|
+
| npm dist-tag `latest` | `0.3.0` |
|
|
164
|
+
| npm dist.shasum | `fbc2c9e3d29ad4181776008b1880e5845e3aec53` |
|
|
165
|
+
| npm dist.integrity | `sha512-0p2ggAnyVOv4QVEpFFPp54e2eaPfFNfyLhVdyYLySfTVym/iOcB6nJR0v3UcRTM9uQc05F2bayG9i7JltnuUmA==` |
|
|
166
|
+
| Local tarball | `packages/p-dev/p-dev-harness-0.3.0.tgz` |
|
|
167
|
+
| Local tarball bytes | 1,630,506 |
|
|
168
|
+
| Local tarball SHA-1 | `fbc2c9e3d29ad4181776008b1880e5845e3aec53` |
|
|
169
|
+
| Local tarball SHA-256 | `d7b99605f40f1837ef9a7bd64dd1f712d18259c6dafc9124527337b29a60c916` |
|
|
170
|
+
| Registry smoke | `npx --yes p-dev-harness@0.3.0 --no-open` → HTTP 200 on `/settings/configure` |
|
|
171
|
+
| Release timestamp (UTC) | 2026-07-13 |
|
|
172
|
+
|
|
173
|
+
## Release readiness checklist
|
|
174
|
+
|
|
175
|
+
- [x] Release-prep PR merged to `main`
|
|
176
|
+
- [x] npm package-name correction PR merged
|
|
177
|
+
- [x] Required checks green on merge commits
|
|
178
|
+
- [x] Template sync PR merged; immutable template tag `v0.3.0` at `8dac15d`
|
|
179
|
+
- [x] Template provenance correction merged to template `main`
|
|
180
|
+
- [x] `p-dev-harness@0.3.0` published from exact tarball
|
|
181
|
+
- [x] Registry smoke: `npx --yes p-dev-harness@0.3.0 --no-open`
|
|
182
|
+
- [x] Annotated primary tag `v0.3.0` pushed at `RELEASE_SHA`
|
|
183
|
+
- [x] GitHub release created
|
|
184
|
+
- [x] Finalization PR records immutable tag/npm/template evidence
|
|
185
|
+
|
|
186
|
+
## Tag / npm / GitHub release procedure
|
|
187
|
+
|
|
188
|
+
Historical operator steps: [`release-process.md`](release-process.md)
|