rekall-accord 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next-node/BUILD_ID +1 -0
- package/.next-node/app-path-routes-manifest.json +26 -0
- package/.next-node/build-manifest.json +24 -0
- package/.next-node/package.json +1 -0
- package/.next-node/prerender-manifest.json +333 -0
- package/.next-node/required-server-files.json +358 -0
- package/.next-node/routes-manifest.json +194 -0
- package/.next-node/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/_global-error/page/build-manifest.json +20 -0
- package/.next-node/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/_global-error/page.js +9 -0
- package/.next-node/server/app/_global-error/page.js.map +5 -0
- package/.next-node/server/app/_global-error/page.js.nft.json +1 -0
- package/.next-node/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/_global-error.html +1 -0
- package/.next-node/server/app/_global-error.meta +22 -0
- package/.next-node/server/app/_global-error.rsc +14 -0
- package/.next-node/server/app/_global-error.segments/__PAGE__.segment.rsc +19 -0
- package/.next-node/server/app/_global-error.segments/_full.segment.rsc +14 -0
- package/.next-node/server/app/_global-error.segments/_tree.segment.rsc +1 -0
- package/.next-node/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/_not-found/page/build-manifest.json +20 -0
- package/.next-node/server/app/_not-found/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/_not-found/page.js +12 -0
- package/.next-node/server/app/_not-found/page.js.map +5 -0
- package/.next-node/server/app/_not-found/page.js.nft.json +1 -0
- package/.next-node/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/_not-found.html +1 -0
- package/.next-node/server/app/_not-found.meta +27 -0
- package/.next-node/server/app/_not-found.rsc +16 -0
- package/.next-node/server/app/_not-found.segments/_full.segment.rsc +16 -0
- package/.next-node/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +22 -0
- package/.next-node/server/app/_not-found.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/about/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/about/page/build-manifest.json +20 -0
- package/.next-node/server/app/about/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/about/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/about/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/about/page.js +13 -0
- package/.next-node/server/app/about/page.js.map +5 -0
- package/.next-node/server/app/about/page.js.nft.json +1 -0
- package/.next-node/server/app/about/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/about.html +1 -0
- package/.next-node/server/app/about.meta +26 -0
- package/.next-node/server/app/about.rsc +28 -0
- package/.next-node/server/app/about.segments/_full.segment.rsc +28 -0
- package/.next-node/server/app/about.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/about.segments/about/__PAGE__.segment.rsc +33 -0
- package/.next-node/server/app/api/account/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/account/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/account/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/account/route.js +9 -0
- package/.next-node/server/app/api/account/route.js.map +5 -0
- package/.next-node/server/app/api/account/route.js.nft.json +1 -0
- package/.next-node/server/app/api/account/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/agent-token/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/agent-token/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/agent-token/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/agent-token/route.js +7 -0
- package/.next-node/server/app/api/agent-token/route.js.map +5 -0
- package/.next-node/server/app/api/agent-token/route.js.nft.json +1 -0
- package/.next-node/server/app/api/agent-token/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/audit/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/audit/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/audit/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/audit/route.js +7 -0
- package/.next-node/server/app/api/audit/route.js.map +5 -0
- package/.next-node/server/app/api/audit/route.js.nft.json +1 -0
- package/.next-node/server/app/api/audit/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/changes/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/changes/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/changes/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/changes/route.js +7 -0
- package/.next-node/server/app/api/changes/route.js.map +5 -0
- package/.next-node/server/app/api/changes/route.js.nft.json +1 -0
- package/.next-node/server/app/api/changes/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/licence/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/licence/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/licence/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/licence/route.js +7 -0
- package/.next-node/server/app/api/licence/route.js.map +5 -0
- package/.next-node/server/app/api/licence/route.js.nft.json +1 -0
- package/.next-node/server/app/api/licence/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/local/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/local/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/local/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/local/route.js +9 -0
- package/.next-node/server/app/api/local/route.js.map +5 -0
- package/.next-node/server/app/api/local/route.js.nft.json +1 -0
- package/.next-node/server/app/api/local/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/mcp/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/mcp/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/mcp/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/mcp/route.js +9 -0
- package/.next-node/server/app/api/mcp/route.js.map +5 -0
- package/.next-node/server/app/api/mcp/route.js.nft.json +1 -0
- package/.next-node/server/app/api/mcp/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/org/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/org/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/org/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/org/route.js +8 -0
- package/.next-node/server/app/api/org/route.js.map +5 -0
- package/.next-node/server/app/api/org/route.js.nft.json +1 -0
- package/.next-node/server/app/api/org/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/project-logo/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/project-logo/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/project-logo/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/project-logo/route.js +7 -0
- package/.next-node/server/app/api/project-logo/route.js.map +5 -0
- package/.next-node/server/app/api/project-logo/route.js.nft.json +1 -0
- package/.next-node/server/app/api/project-logo/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/runner/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/runner/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/runner/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/runner/route.js +8 -0
- package/.next-node/server/app/api/runner/route.js.map +5 -0
- package/.next-node/server/app/api/runner/route.js.nft.json +1 -0
- package/.next-node/server/app/api/runner/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/runs/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/runs/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/runs/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/runs/route.js +9 -0
- package/.next-node/server/app/api/runs/route.js.map +5 -0
- package/.next-node/server/app/api/runs/route.js.nft.json +1 -0
- package/.next-node/server/app/api/runs/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/share/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/share/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/share/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/share/route.js +7 -0
- package/.next-node/server/app/api/share/route.js.map +5 -0
- package/.next-node/server/app/api/share/route.js.nft.json +1 -0
- package/.next-node/server/app/api/share/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/team/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/team/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/team/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/team/route.js +7 -0
- package/.next-node/server/app/api/team/route.js.map +5 -0
- package/.next-node/server/app/api/team/route.js.nft.json +1 -0
- package/.next-node/server/app/api/team/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/api/workspace/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/api/workspace/route/build-manifest.json +12 -0
- package/.next-node/server/app/api/workspace/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/api/workspace/route.js +9 -0
- package/.next-node/server/app/api/workspace/route.js.map +5 -0
- package/.next-node/server/app/api/workspace/route.js.nft.json +1 -0
- package/.next-node/server/app/api/workspace/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/guides/[slug]/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/guides/[slug]/page/build-manifest.json +20 -0
- package/.next-node/server/app/guides/[slug]/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/guides/[slug]/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/guides/[slug]/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/guides/[slug]/page.js +14 -0
- package/.next-node/server/app/guides/[slug]/page.js.map +5 -0
- package/.next-node/server/app/guides/[slug]/page.js.nft.json +1 -0
- package/.next-node/server/app/guides/[slug]/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.html +1 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.meta +31 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.rsc +27 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.segments/_full.segment.rsc +27 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/guides/acceptance-criteria-and-qa.segments/guides/$d$slug/__PAGE__.segment.rsc +39 -0
- package/.next-node/server/app/guides/ai-development-change-requests.html +1 -0
- package/.next-node/server/app/guides/ai-development-change-requests.meta +31 -0
- package/.next-node/server/app/guides/ai-development-change-requests.rsc +25 -0
- package/.next-node/server/app/guides/ai-development-change-requests.segments/_full.segment.rsc +25 -0
- package/.next-node/server/app/guides/ai-development-change-requests.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/guides/ai-development-change-requests.segments/guides/$d$slug/__PAGE__.segment.rsc +37 -0
- package/.next-node/server/app/guides/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/guides/page/build-manifest.json +20 -0
- package/.next-node/server/app/guides/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/guides/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/guides/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/guides/page.js +13 -0
- package/.next-node/server/app/guides/page.js.map +5 -0
- package/.next-node/server/app/guides/page.js.nft.json +1 -0
- package/.next-node/server/app/guides/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/guides/software-requirements-template.html +1 -0
- package/.next-node/server/app/guides/software-requirements-template.meta +31 -0
- package/.next-node/server/app/guides/software-requirements-template.rsc +26 -0
- package/.next-node/server/app/guides/software-requirements-template.segments/_full.segment.rsc +26 -0
- package/.next-node/server/app/guides/software-requirements-template.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/guides/software-requirements-template.segments/guides/$d$slug/__PAGE__.segment.rsc +38 -0
- package/.next-node/server/app/guides.html +1 -0
- package/.next-node/server/app/guides.meta +26 -0
- package/.next-node/server/app/guides.rsc +23 -0
- package/.next-node/server/app/guides.segments/_full.segment.rsc +23 -0
- package/.next-node/server/app/guides.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/guides.segments/guides/__PAGE__.segment.rsc +28 -0
- package/.next-node/server/app/index.html +1 -0
- package/.next-node/server/app/index.meta +21 -0
- package/.next-node/server/app/index.rsc +15 -0
- package/.next-node/server/app/index.segments/__PAGE__.segment.rsc +20 -0
- package/.next-node/server/app/index.segments/_full.segment.rsc +15 -0
- package/.next-node/server/app/index.segments/_tree.segment.rsc +2 -0
- package/.next-node/server/app/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/page/build-manifest.json +20 -0
- package/.next-node/server/app/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/page.js +13 -0
- package/.next-node/server/app/page.js.map +5 -0
- package/.next-node/server/app/page.js.nft.json +1 -0
- package/.next-node/server/app/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/robots.txt/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/robots.txt/route/build-manifest.json +12 -0
- package/.next-node/server/app/robots.txt/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/robots.txt/route.js +6 -0
- package/.next-node/server/app/robots.txt/route.js.map +5 -0
- package/.next-node/server/app/robots.txt/route.js.nft.json +1 -0
- package/.next-node/server/app/robots.txt/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/robots.txt.body +9 -0
- package/.next-node/server/app/robots.txt.meta +1 -0
- package/.next-node/server/app/s/[token]/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/s/[token]/page/build-manifest.json +20 -0
- package/.next-node/server/app/s/[token]/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/s/[token]/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/s/[token]/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/s/[token]/page.js +15 -0
- package/.next-node/server/app/s/[token]/page.js.map +5 -0
- package/.next-node/server/app/s/[token]/page.js.nft.json +1 -0
- package/.next-node/server/app/s/[token]/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app/sitemap.xml/route/app-paths-manifest.json +3 -0
- package/.next-node/server/app/sitemap.xml/route/build-manifest.json +12 -0
- package/.next-node/server/app/sitemap.xml/route/server-reference-manifest.json +4 -0
- package/.next-node/server/app/sitemap.xml/route.js +6 -0
- package/.next-node/server/app/sitemap.xml/route.js.map +5 -0
- package/.next-node/server/app/sitemap.xml/route.js.nft.json +1 -0
- package/.next-node/server/app/sitemap.xml/route_client-reference-manifest.js +3 -0
- package/.next-node/server/app/sitemap.xml.body +8 -0
- package/.next-node/server/app/sitemap.xml.meta +1 -0
- package/.next-node/server/app/spec/page/app-paths-manifest.json +3 -0
- package/.next-node/server/app/spec/page/build-manifest.json +20 -0
- package/.next-node/server/app/spec/page/next-font-manifest.json +6 -0
- package/.next-node/server/app/spec/page/react-loadable-manifest.json +1 -0
- package/.next-node/server/app/spec/page/server-reference-manifest.json +4 -0
- package/.next-node/server/app/spec/page.js +15 -0
- package/.next-node/server/app/spec/page.js.map +5 -0
- package/.next-node/server/app/spec/page.js.nft.json +1 -0
- package/.next-node/server/app/spec/page_client-reference-manifest.js +3 -0
- package/.next-node/server/app-paths-manifest.json +26 -0
- package/.next-node/server/chunks/[externals]__1xp13sj._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__03c4113._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__0_98crs._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__0g957e5._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__0uymhsf._.js +70 -0
- package/.next-node/server/chunks/[root-of-the-server]__1-pt4sf._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__1161aa9._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__15bjnu5._.js +5 -0
- package/.next-node/server/chunks/[root-of-the-server]__194807o._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__1_g8brf._.js +15 -0
- package/.next-node/server/chunks/[root-of-the-server]__1cj35zq._.js +15 -0
- package/.next-node/server/chunks/[root-of-the-server]__1ecyjj1._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__1o6a8yh._.js +3 -0
- package/.next-node/server/chunks/[root-of-the-server]__1yk21j_._.js +3 -0
- package/.next-node/server/chunks/[turbopack]_runtime.js +939 -0
- package/.next-node/server/chunks/_09w0rob._.js +3 -0
- package/.next-node/server/chunks/_0c2ik63._.js +3 -0
- package/.next-node/server/chunks/_116ijjc._.js +3 -0
- package/.next-node/server/chunks/_1fp04yw._.js +3 -0
- package/.next-node/server/chunks/_1gn7eh7._.js +3 -0
- package/.next-node/server/chunks/_1yd-p3w._.js +3 -0
- package/.next-node/server/chunks/_1yf4csx._.js +219 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_account_route_actions_194w89l.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_agent-token_route_actions_08cna7_.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_audit_route_actions_19mknew.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_changes_route_actions_0csrjtr.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_licence_route_actions_0vpn64k.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_local_route_actions_14zijx1.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_mcp_route_actions_1thtluk.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_org_route_actions_1t3xlml.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_project-logo_route_actions_100vr9l.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_runner_route_actions_1wqlapv.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_runs_route_actions_0kh91o2.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_share_route_actions_0tpl991.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_team_route_actions_0b1uoww.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_api_workspace_route_actions_19-xkal.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_robots_txt_route_actions_15vc_89.js +3 -0
- package/.next-node/server/chunks/_next-internal_server_app_sitemap_xml_route_actions_05l5km9.js +3 -0
- package/.next-node/server/chunks/lib_accord_run-server_ts_1b1ff99._.js +3 -0
- package/.next-node/server/chunks/runner_1v-wy_w._.js +23 -0
- package/.next-node/server/chunks/runner_check_mjs_0poxsgb._.js +3 -0
- package/.next-node/server/chunks/runner_config_mjs_02q6n0r._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0b06nll._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0fizn_-._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0melyg_._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0nyueky._.js +33 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0twe8p9._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__0ze2_dq._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__112mz-6._.js +14 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__11zr9ex._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +33 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__1oe4hc5._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__1rasrr9._.js +3 -0
- package/.next-node/server/chunks/ssr/[root-of-the-server]__1ypl2q0._.js +3 -0
- package/.next-node/server/chunks/ssr/[turbopack]_runtime.js +939 -0
- package/.next-node/server/chunks/ssr/_043p6h1._.js +3 -0
- package/.next-node/server/chunks/ssr/_0_b-2rs._.js +3 -0
- package/.next-node/server/chunks/ssr/_1ofgw5a._.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_about_page_actions_0xvgj07.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_guides_[slug]_page_actions_07fmjsl.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_guides_page_actions_0vqxbaj.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_s_[token]_page_actions_0kpicgu.js +3 -0
- package/.next-node/server/chunks/ssr/_next-internal_server_app_spec_page_actions_0d5m1h5.js +3 -0
- package/.next-node/server/chunks/ssr/app_workspace_tsx_16kkvlv._.js +102 -0
- package/.next-node/server/chunks/ssr/node_modules_01xbj_9._.js +33 -0
- package/.next-node/server/chunks/ssr/node_modules_1nkgb45._.js +23 -0
- package/.next-node/server/chunks/ssr/node_modules_lucide-react_dist_esm_createLucideIcon_mjs_046kvv3._.js +3 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_0drixxt._.js +151 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_1c5ky4f._.js +3 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_1n3w9lb._.js +6 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +3 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +3 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js +3 -0
- package/.next-node/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +3 -0
- package/.next-node/server/functions-config-manifest.json +4 -0
- package/.next-node/server/middleware-build-manifest.js +24 -0
- package/.next-node/server/middleware-manifest.json +6 -0
- package/.next-node/server/next-font-manifest.js +1 -0
- package/.next-node/server/next-font-manifest.json +6 -0
- package/.next-node/server/pages/404.html +1 -0
- package/.next-node/server/pages/500.html +1 -0
- package/.next-node/server/pages-manifest.json +4 -0
- package/.next-node/server/prefetch-hints.json +81 -0
- package/.next-node/server/server-reference-manifest.js +1 -0
- package/.next-node/server/server-reference-manifest.json +5 -0
- package/.next-node/static/O0yz_3m0RU49CRdgEzJko/_buildManifest.js +11 -0
- package/.next-node/static/O0yz_3m0RU49CRdgEzJko/_clientMiddlewareManifest.js +1 -0
- package/.next-node/static/O0yz_3m0RU49CRdgEzJko/_ssgManifest.js +1 -0
- package/.next-node/static/chunks/001803_ikgvy0.js +1 -0
- package/.next-node/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/.next-node/static/chunks/18jc9s790l5j4.js +1 -0
- package/.next-node/static/chunks/19mx3mg6lkumu.js +1 -0
- package/.next-node/static/chunks/1mh6a-0e61pyc.js +1 -0
- package/.next-node/static/chunks/2-rtuqsgzmno4.js +22 -0
- package/.next-node/static/chunks/21_wi9mjjb4hi.js +1 -0
- package/.next-node/static/chunks/22i43cg4l4-dq.js +1 -0
- package/.next-node/static/chunks/24eykxjjs1eyd.js +100 -0
- package/.next-node/static/chunks/2q_ofqpogy1t8.css +1 -0
- package/.next-node/static/chunks/310vm2bl3xxpt.js +31 -0
- package/.next-node/static/chunks/3fntmmi971322.js +1 -0
- package/.next-node/static/chunks/turbopack-08z-qkls8a53k.js +1 -0
- package/bin/accord.mjs +45 -0
- package/drizzle/0000_mean_nitro.sql +24 -0
- package/drizzle/0001_dry_warlock.sql +19 -0
- package/drizzle/0002_cynical_mikhail_rasputin.sql +9 -0
- package/drizzle/0003_black_thing.sql +1 -0
- package/drizzle/meta/0000_snapshot.json +165 -0
- package/drizzle/meta/0001_snapshot.json +279 -0
- package/drizzle/meta/0002_snapshot.json +332 -0
- package/drizzle/meta/0003_snapshot.json +339 -0
- package/drizzle/meta/_journal.json +34 -0
- package/package.json +30 -0
- package/public/favicon.svg +1 -0
- package/public/file.svg +1 -0
- package/public/globe.svg +1 -0
- package/public/runner/accord-runner.mjs +799 -0
- package/public/window.svg +1 -0
- package/runner/accord-runner.mjs +150 -0
- package/runner/check.mjs +65 -0
- package/runner/config.mjs +35 -0
- package/runner/install.mjs +52 -0
- package/runner/protocol.mjs +50 -0
- package/runner/providers/claude.mjs +47 -0
- package/runner/providers/codex.mjs +27 -0
- package/runner/providers/index.mjs +5 -0
- package/server.js +44 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[4007,a=>{"use strict";a.s(["default",()=>b]);let b=(0,a.i(11857).registerClientReference)(function(){throw Error("Attempted to call the default export of [project]/components/accord/print-button.tsx from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"[project]/components/accord/print-button.tsx","default")},17584,a=>{"use strict";var b=a.i(4007);a.n(b)},35741,51127,85226,53382,25256,a=>{"use strict";let b={};var c=a.i(5246);a.i(70396);let d="/signin-with-chatgpt";async function e(){let a=await (0,c.headers)(),b=a.get("oai-authenticated-user-id"),d=a.get("oai-authenticated-user-email");if(!b||!d)return null;let e=a.get("oai-authenticated-user-full-name"),f=e&&"percent-encoded-utf-8"===a.get("oai-authenticated-user-full-name-encoding")?function(a){try{return decodeURIComponent(a)}catch{return null}}(e):null;return{userId:b,displayName:f??d,email:d,fullName:f}}a.s(["chatGPTSignInPath",0,function(a){let b=function(a){var b;let c;if(!a.startsWith("/")||a.startsWith("//"))return"/";try{c=new URL(a,"https://app.local")}catch{return"/"}return"https://app.local"!==c.origin||(b=c.pathname)===d||"/signout-with-chatgpt"===b||"/callback"===b?"/":`${c.pathname}${c.search}${c.hash}`}(a);return`${d}?return_to=${encodeURIComponent(b)}`},"getChatGPTUser",0,e],51127);class f extends Error{status;retryAfter;constructor(a,b=400,c=0){super(a),this.status=b,this.retryAfter=c}}a.s(["DomainError",0,f],85226);let g=new Map;var h=a.x("node:sqlite",()=>require("node:sqlite"),!0);a.i(74533);var i=a.i(2157),j=a.i(50227),k=a.i(60526);class l{db;sql;params;constructor(a,b,c=[]){this.db=a,this.sql=b,this.params=c}bind(...a){return new l(this.db,this.sql,a)}prepared(){return this.db.prepare(this.sql)}async first(a){let b=this.prepared().get(...this.params);return b?void 0===a?b:b[a]:null}async all(){return{results:this.prepared().all(...this.params),success:!0}}async run(){let a=this.prepared().run(...this.params);return{success:!0,meta:{changes:Number(a.changes),last_row_id:Number(a.lastInsertRowid)}}}}let m=null;function n(){let a=b.DB;if(a)return a;let c=function(){if(!m){let a=process.env.ACCORD_DB??j.default.join(process.env.ACCORD_HOME??j.default.join(k.default.homedir(),".accord"),"accord.sqlite");(0,i.mkdirSync)(j.default.dirname(a),{recursive:!0}),(m=new h.DatabaseSync(a)).exec("PRAGMA journal_mode = WAL"),m.exec("PRAGMA foreign_keys = ON"),function(a,b){if(!(0,i.existsSync)(b))return;a.exec("CREATE TABLE IF NOT EXISTS d1_migrations (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT UNIQUE NOT NULL, applied_at TEXT NOT NULL)");let c=new Set(a.prepare("SELECT name FROM d1_migrations").all().map(a=>a.name)),d=(0,i.readdirSync)(b).filter(a=>a.endsWith(".sql")).sort().filter(a=>!c.has(a));for(let c of d){let d=(0,i.readFileSync)(j.default.join(b,c),"utf8").split("--> statement-breakpoint").map(a=>a.trim()).filter(Boolean);a.exec("BEGIN");try{for(let b of d)a.exec(b);a.prepare("INSERT INTO d1_migrations (name, applied_at) VALUES (?, ?)").run(c,new Date().toISOString()),a.exec("COMMIT")}catch(b){throw a.exec("ROLLBACK"),b}}d.length}(m,process.env.ACCORD_MIGRATIONS??j.default.join(process.cwd(),"drizzle"))}let a=m;return{prepare:b=>new l(a,b),batch:async b=>{a.exec("BEGIN");try{let c=[];for(let a of b)c.push(await a.run());return a.exec("COMMIT"),c}catch(b){throw a.exec("ROLLBACK"),b}}}}();if(c)return c;throw new f("Project storage is temporarily unavailable. Please retry.",503)}async function o(){let a,b=await e()??{userId:"local:"+(a=(process.env.ACCORD_OWNER_EMAIL??`${k.default.userInfo().username}@localhost`).toLowerCase()),email:a,fullName:process.env.ACCORD_OWNER_NAME??k.default.userInfo().username};if(!b)throw new f("Please sign in to access your workspace.",401);return{...b,email:b.email.toLowerCase()}}async function p(a){let b=await o(),c=await n().prepare("SELECT * FROM projects WHERE id = ?").bind(a).first();if(!c)throw new f("Project not found.",404);let d="owner";if(c.owner!==b.userId){let c=await n().prepare("SELECT role FROM members WHERE project_id = ? AND email = ?").bind(a,b.email).first();if(!c)throw new f("Project not found.",404);d=c.role}return{row:c,user:b,actor:{id:b.email,name:b.fullName??b.email,role:d}}}async function q(a){return Array.from(new Uint8Array(await crypto.subtle.digest("SHA-256",new TextEncoder().encode(a))),a=>a.toString(16).padStart(2,"0")).join("")}a.s(["access",0,p,"db",0,n,"hashToken",0,q,"throttle",0,function(a,b,c=6e4){let d=function(a,b,c,d=Date.now()){var e;let f,h,i,j=(e=g.get(a),f=e??{tokens:b,at:d},h=Math.max(0,d-f.at),(i=Math.min(b,f.tokens+h/c*b))<1?{ok:!1,bucket:{tokens:i,at:d},retryMs:Math.ceil((1-i)*c/b)}:{ok:!0,bucket:{tokens:i-1,at:d},retryMs:0});if(g.size>5e3){for(let[a,b]of g)if(d-b.at>2*c&&g.delete(a),g.size<=5e3)break}return g.set(a,j.bucket),j}(a,b,c);if(!d.ok)throw new f("Too many requests. Wait a moment and try again.",429,Math.max(1,Math.ceil(d.retryMs/1e3)))}],35741);let r=a=>({id:a.id,code:a.code,title:a.title,description:a.description,criteria:a.criteria,priority:a.priority});a.s(["specDocument",0,function(a,b){let c=a.baselines.at(-1),d=c?c.requirements:a.requirements,e=c?c.questions:a.questions;return{title:a.name,client:a.client,brief:c?c.brief:a.brief,preparedBy:b?.name??null,logo:b?.logo??null,color:b?.color??null,clientLogo:a.logo??null,status:c?"approved":"draft",statusLabel:c?`Approved baseline v${c.number}`:"Draft — not yet approved",approvedAt:c?c.at:"",approvedBy:c?c.by:"",requirements:d.map(r),decisions:e.filter(a=>a.answer),open:e.filter(a=>!a.answer),changes:a.changes.filter(a=>{let b;return"rejected"!==a.status&&("pending"===a.status||!c||!((b=c.requirements.find(b=>b.id===a.requirementId))&&b.version>a.before.version))}).map(a=>({id:a.id,code:a.code,title:a.title,description:a.description,criteria:a.criteria,reason:a.reason,effort:a.effort,status:a.status,requirementId:a.requirementId,before:r(a.before)})),repository:a.repository,design:a.design}}],53382);var s=a.i(7997);a.s(["default",0,function({doc:a}){let b;return(0,s.jsxs)("article",{className:"spec-sheet"+("draft"===a.status?" spec-draft":""),children:[(0,s.jsxs)("header",{className:"spec-cover",children:[(0,s.jsxs)("div",{className:"spec-mark",children:[a.logo?(0,s.jsx)("img",{src:a.logo,alt:(a.preparedBy??"Organisation")+" logo"}):null,a.preparedBy?(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"spec-label",children:"PREPARED BY"}),(0,s.jsx)("strong",{children:a.preparedBy})]}):null]}),(0,s.jsx)("span",{className:"spec-label",children:"SOFTWARE SPECIFICATION"}),(0,s.jsx)("h1",{children:a.title}),(0,s.jsxs)("div",{className:"spec-for",children:[a.clientLogo?(0,s.jsx)("img",{className:"spec-client-logo",src:a.clientLogo,alt:a.client+" logo"}):null,(0,s.jsxs)("p",{className:"spec-client",children:["Prepared for ",a.client]})]}),(0,s.jsx)("p",{className:"spec-status"+("approved"===a.status?" approved":""),children:a.statusLabel}),"approved"===a.status&&(0,s.jsxs)("p",{className:"spec-approval",children:["Approved ",(b=a.approvedAt)?new Date(b).toLocaleDateString("en-GB",{day:"numeric",month:"long",year:"numeric"}):""," by ",a.approvedBy,"."]})]}),(0,s.jsxs)("section",{className:"spec-section",children:[(0,s.jsx)("h2",{children:"The request"}),(0,s.jsx)("p",{children:a.brief}),(a.repository||a.design)&&(0,s.jsxs)("p",{className:"spec-refs",children:[a.repository&&(0,s.jsxs)("span",{children:["Repository: ",a.repository]}),a.design&&(0,s.jsxs)("span",{children:["Design reference: ",a.design]})]})]}),(0,s.jsxs)("section",{className:"spec-section",children:[(0,s.jsxs)("h2",{children:["Requirements ",(0,s.jsx)("span",{children:a.requirements.length})]}),a.requirements.length?a.requirements.map(a=>(0,s.jsxs)("div",{className:"spec-req",children:[(0,s.jsxs)("h3",{children:[(0,s.jsx)("span",{className:"spec-code",children:a.code}),a.title,(0,s.jsx)("em",{children:a.priority})]}),(0,s.jsx)("p",{children:a.description}),(0,s.jsx)("span",{className:"spec-label",children:"ACCEPTANCE CRITERIA"}),(0,s.jsx)("ol",{children:a.criteria.map((a,b)=>(0,s.jsx)("li",{children:a},b))})]},a.id)):(0,s.jsx)("p",{className:"spec-empty",children:"No requirements have been recorded yet."})]}),a.decisions.length>0&&(0,s.jsxs)("section",{className:"spec-section",children:[(0,s.jsxs)("h2",{children:["Decisions ",(0,s.jsx)("span",{children:a.decisions.length})]}),a.decisions.map(a=>(0,s.jsxs)("div",{className:"spec-decision",children:[(0,s.jsx)("p",{className:"spec-question",children:a.text}),(0,s.jsx)("p",{children:a.answer})]},a.id))]}),a.open.length>0&&(0,s.jsxs)("section",{className:"spec-section",children:[(0,s.jsxs)("h2",{children:["Open questions ",(0,s.jsx)("span",{children:a.open.length})]}),(0,s.jsx)("p",{className:"spec-note",children:"These decisions are still outstanding. Their answers may change the scope described above."}),(0,s.jsx)("ul",{className:"spec-open",children:a.open.map(a=>(0,s.jsx)("li",{children:a.text},a.id))})]}),a.changes.length>0&&(0,s.jsxs)("section",{className:"spec-section",children:[(0,s.jsxs)("h2",{children:["Change requests ",(0,s.jsx)("span",{children:a.changes.length})]}),(0,s.jsx)("p",{className:"spec-note",children:"Raised since the agreement above. Accepted changes are additional work; pending changes are not yet agreed."}),a.changes.map(a=>(0,s.jsxs)("div",{className:"spec-req",children:[(0,s.jsxs)("h3",{children:[(0,s.jsx)("span",{className:"spec-code",children:a.code}),a.title,(0,s.jsx)("em",{children:"accepted"===a.status?"Accepted":"Pending"})]}),(0,s.jsx)("p",{children:a.description}),(0,s.jsxs)("p",{className:"spec-reason",children:["Reason: ",a.reason,a.effort?` \xb7 Estimated effort: ${a.effort}`:""]}),(0,s.jsx)("span",{className:"spec-label",children:"ACCEPTANCE CRITERIA"}),(0,s.jsx)("ol",{children:a.criteria.map((a,b)=>(0,s.jsx)("li",{children:a},b))})]},a.id))]}),(0,s.jsxs)("section",{className:"spec-section spec-signoff",children:[(0,s.jsx)("h2",{children:"Sign-off"}),(0,s.jsx)("p",{className:"spec-note",children:"approved"===a.status?"This document records the approved specification. Work outside it is handled as a change request.":"This document is a draft. It becomes the agreed specification once it is approved and baselined."}),(0,s.jsxs)("div",{className:"spec-signatures",children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("span",{children:["For ",a.client]}),(0,s.jsx)("i",{}),(0,s.jsx)("span",{className:"spec-label",children:"NAME, SIGNATURE, DATE"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("span",{children:["For ",a.preparedBy??"the development team"]}),(0,s.jsx)("i",{}),(0,s.jsx)("span",{className:"spec-label",children:"NAME, SIGNATURE, DATE"})]})]})]}),(0,s.jsxs)("footer",{className:"spec-foot",children:[a.preparedBy?a.preparedBy+" · ":"",a.title," · ",a.statusLabel]})]})}],25256)},8018,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(a.r(717));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},81740,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"cookies",{enumerable:!0,get:function(){return n}});let d=a.r(14896),e=a.r(63681),f=a.r(56704),g=a.r(32319),h=a.r(60384),i=a.r(60312),j=a.r(13091),k=a.r(8018),l=a.r(86309),m=a.r(50640);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,l.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1381",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),(0,j.applyOwnerStack)(f),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let g=o.get(q);if(g)return g;let r=(0,j.makeRuntimeHangingPromise)(q.renderSignal,k.route,"`cookies()`",q);return o.set(q,r),r;case"prerender-client":case"validation-client":let s="`cookies`";throw Object.defineProperty(new m.InvariantError(`${s} must not be used within a Client Component. Next.js should be preventing ${s} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(j.RENDER_STAGES_BY_DATA_KIND.sessionData,"cookies",c.cookies);return p(c.cookies)}case"private-cache":return p(c.cookies);case"request":let t;if((0,h.trackDynamicDataInDynamicRender)(c),t=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(t);if(t===c.mutableCookies)return c.asyncApiPromises.mutableCookies;return c.asyncApiPromises.cookies}}(0,g.throwForMissingRequestStore)(a)}let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},29927,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(51409);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1176",enumerable:!1,configurable:!0})}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a,b){let c,d=b&&b.size>0?a=>b.has(a.toLowerCase()):null,e=new Proxy(a,{get(a,b,d){switch(b){case"append":case"delete":case"set":return g.callable;case Symbol.iterator:return c[Symbol.iterator];case"get":case"has":case"getSetCookie":case"keys":case"values":case"entries":case"forEach":return c[b];default:return f.ReflectAdapter.get(a,b,d)}}});return c=d?function(a,b,c){function*d(){for(let b of a.entries())c(b[0])||(yield b)}return{entries:d,[Symbol.iterator]:d,get:b=>c(b)?null:a.get(b),has:b=>!c(b)&&a.has(b),getSetCookie:()=>c("set-cookie")?[]:a.getSetCookie(),*keys(){for(let b of a.keys())c(b)||(yield b)},*values(){for(let[,a]of d())yield a},forEach(a,c){for(let[e,f]of d())a.call(c,f,e,b)}}}(a,e,d):{get:a.get.bind(a),has:a.has.bind(a),getSetCookie:a.getSetCookie.bind(a),keys:a.keys.bind(a),values:a.values.bind(a),entries:a.entries.bind(a),[Symbol.iterator]:a[Symbol.iterator].bind(a),forEach(b,c){for(let[d,f]of a.entries())b.call(c,f,d,e)}},e}static fresh(a){return new Proxy(a,{get:(a,b,c)=>f.ReflectAdapter.get(a,b,c)})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},35754,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"headers",{enumerable:!0,get:function(){return m}});let d=a.r(29927),e=a.r(56704),f=a.r(32319),g=a.r(60384),h=a.r(60312),i=a.r(13091),j=a.r(8018),k=a.r(86309),l=a.r(50640);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&!(0,k.isRequestApiAllowedInCurrentPhase)(c))throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\` while rendering. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E1378",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),(0,i.applyOwnerStack)(a),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let f=(0,i.makeRuntimeHangingPromise)(p.renderSignal,j.route,"`headers()`",p);return n.set(p,f),f;case"prerender-client":case"validation-client":let q="`headers`";throw Object.defineProperty(new l.InvariantError(`${q} must not be used within a client component. Next.js should be preventing ${q} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(i.RENDER_STAGES_BY_DATA_KIND.sessionData,"headers",c.headers);return o(c.headers)}case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},51125,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"draftMode",{enumerable:!0,get:function(){return l}});let d=a.r(32319),e=a.r(56704),f=a.r(60384),g=a.r(8018),h=a.r(60312),i=a.r(96556),j=a.r(50640);a.r(51409);let k=a.r(13091);function l(){let a="draftMode",b=e.workAsyncStorage.getStore(),c=d.workUnitAsyncStorage.getStore();switch((!b||!c)&&(0,d.throwForMissingRequestStore)(a),c.type){case"prerender-runtime":{let{stagedRendering:a}=c;if(a)return a.delayUntilStage(k.RENDER_STAGES_BY_DATA_KIND.sessionData,"draftMode",new p(c.draftMode));return m(c.draftMode,b)}case"request":return m(c.draftMode,b);case"cache":case"private-cache":case"unstable-cache":let f=(0,d.getDraftModeProviderForCacheScope)(b,c);if(f)return m(f,b);case"prerender":case"prerender-ppr":case"prerender-legacy":return m(null,b);case"prerender-client":case"validation-client":{let a="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0})}case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`${a}()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1132",enumerable:!1,configurable:!0});default:return c}}function m(a,b){let c=o.get(a??n);return c||Promise.resolve(new p(a))}let n={},o=new WeakMap;class p{constructor(a){this._provider=a}get isEnabled(){return null!==this._provider&&this._provider.isEnabled}enable(){q("draftMode().enable()",this.enable),null!==this._provider&&this._provider.enable()}disable(){q("draftMode().disable()",this.disable),null!==this._provider&&this._provider.disable()}}function q(a,b){let c=e.workAsyncStorage.getStore(),g=d.workUnitAsyncStorage.getStore();if(c){if((null==g?void 0:g.phase)==="after")throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside \`after()\`. The enabled status of \`draftMode()\` can be read inside \`after()\` but you cannot enable or disable \`draftMode()\`. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E845",enumerable:!1,configurable:!0});if(c.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${c.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(g)switch(g.type){case"cache":case"private-cache":{let d=Object.defineProperty(Error(`Route ${c.route} used "${a}" inside "use cache". The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E829",enumerable:!1,configurable:!0});throw Error.captureStackTrace(d,b),(0,k.applyOwnerStack)(d),c.invalidDynamicUsageError??=d,d}case"unstable-cache":throw Object.defineProperty(Error(`Route ${c.route} used "${a}" inside a function cached with \`unstable_cache()\`. The enabled status of \`draftMode()\` can be read in caches but you must not enable or disable \`draftMode()\` inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E844",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":{let b=Object.defineProperty(Error(`Route ${c.route} used ${a} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`),"__NEXT_ERROR_CODE",{value:"E126",enumerable:!1,configurable:!0});return(0,f.abortAndThrowOnSynchronousRequestDataAccess)(c.route,a,b,g)}case"prerender-client":case"validation-client":let d="`draftMode`";throw Object.defineProperty(new j.InvariantError(`${d} must not be used within a Client Component. Next.js should be preventing ${d} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1046",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,f.postponeWithTracking)(c.route,a,g.dynamicTracking);case"prerender-legacy":g.revalidate=0;let e=Object.defineProperty(new i.DynamicServerError(`Route ${c.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.dynamicUsageDescription=a,c.dynamicUsageStack=e.stack,e;case"request":(0,f.trackDynamicDataInDynamicRender)(g);break;case"generate-static-params":throw Object.defineProperty(Error(`Route ${c.route} used \`${a}\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1121",enumerable:!1,configurable:!0})}}}(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},5246,(a,b,c)=>{b.exports.cookies=a.r(81740).cookies,b.exports.headers=a.r(35754).headers,b.exports.draftMode=a.r(51125).draftMode},86309,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={isRequestApiAllowedInCurrentPhase:function(){return k},throwForSearchParamsAccessInUseCache:function(){return j},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return i}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(60312),g=a.r(20635),h=a.r(24725);function i(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function j(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function k(a){switch(a.phase){case"action":case"render":return!0;case"after":{let a=g.actionAsyncStorage.getStore();if(a&&(a.isAppRoute||a.isAction))return!0;let b=h.afterTaskAsyncStorage.getStore();if(b)return"action"===b.rootTaskSpawnPhase;return!1}}}},63681,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(36226)},51409,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"ReflectAdapter",{enumerable:!0,get:function(){return d}});class d{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},4712,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={ActionDidNotRevalidate:function(){return f},ActionDidRevalidateDynamicOnly:function(){return h},ActionDidRevalidateStaticAndDynamic:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=0,g=1,h=2},14896,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63681),g=a.r(51409),h=a.r(56704),i=a.r(4712);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options"),Object.defineProperty(this,"__NEXT_ERROR_CODE",{value:"E1180",enumerable:!1,configurable:!0})}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}static fresh(a){return new Proxy(a,{get:(a,b,c)=>g.ReflectAdapter.get(a,b,c)})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_043p6h1._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[33290,a=>{"use strict";var b=a.i(7997);let c={metadataBase:new URL(a.i(94474).siteOrigin),title:{default:"Accord — requirements, agreed",template:"%s | Accord"},description:"Clarify requirements, agree on scope, and connect delivery to acceptance.",applicationName:"Accord",robots:{index:!1,follow:!1},referrer:"strict-origin-when-cross-origin",icons:{icon:"/favicon.svg",shortcut:"/favicon.svg"}};a.s(["default",0,function({children:a}){return(0,b.jsx)("html",{lang:"en",children:(0,b.jsx)("body",{className:"antialiased",children:a})})},"metadata",0,c])},70864,function(a){a.n(a.i(33290))},94474,a=>{"use strict";let b="https://accord-spec-workspace.mariusm.chatgpt.site",c=[{slug:"software-requirements-template",title:"Software requirements template for development teams",description:"Use a practical software requirements template to capture goals, scope, decisions and testable acceptance criteria before implementation begins.",intro:"A good specification makes the next decision easier. It tells the team what outcome matters, what behaviour is required and how they will know it works.",sections:[{title:"Start with the problem and the person",text:"Name the user, the task they are trying to complete and the current obstacle. “Managers need to review employee expenses without approving their own claims” is more useful than “Build an expense portal.” Keep the original request alongside the refined specification so later decisions can be traced back to it."},{title:"A reusable requirement template",text:"Use these fields for each feature. If an answer is unknown, record a question with an owner instead of filling the gap with a guess.",items:["User and goal: who needs this, and what outcome matters?","Behaviour: what should the system do when the user acts?","Acceptance criteria: observable success, validation and failure cases.","Constraints: permissions, data retention, integration and performance needs.","Out of scope: adjacent behaviour that is deliberately excluded.","Open questions: decision needed, owner and implementation impact.","Evidence: source request, design reference and relevant decisions."]},{title:"Example: approving an expense",text:"Requirement: a manager can approve a pending expense submitted by a direct report. The manager cannot approve their own expense. A rejected expense must include a reason that the employee can read. Record separately who covers an absent manager; that unanswered decision may block the approval feature without blocking the whole application."},{title:"Agree before turning the specification into tickets",text:"Review the requirement with the decision maker, resolve material questions and record an approved baseline. Break the feature into implementable tickets, but keep each ticket linked to its requirement and criteria. A ticket title alone is not a specification."},{title:"Keep the agreement useful during development",text:"When new information changes behaviour, capture the proposed change and its reason. Compare it with the agreed version, identify affected tickets and decide whether implementation should wait. In Accord, baselines preserve previous agreements and accepted requirement changes make affected tickets visibly stale until refreshed."}]},{slug:"acceptance-criteria-and-qa",title:"How to write acceptance criteria that developers and QA can test",description:"Turn vague requirements into observable acceptance criteria, then record QA outcomes and evidence against the exact feature and implementation tested.",intro:"Acceptance criteria connect an intention to a test. They should let a developer, tester and product owner independently recognise whether a feature behaves as agreed.",sections:[{title:"Describe behaviour, not implementation guesses",text:"“The form works correctly” is ambiguous. “Submitting a positive whole number of minutes and a non-empty task name adds one session to the history” gives the team an observable result. Avoid specifying a library or internal function unless it is a real constraint."},{title:"Use Given, When, Then where it helps",text:"Given a manager viewing their own pending expense, when they attempt to approve it, then the system rejects the action and the expense stays pending. Include direct requests as well as button clicks when access control matters: hiding a button alone does not enforce a permission."},{title:"Cover the edges that change the outcome",text:"Choose boundaries from the requirement rather than inventing them during coding. For a session duration of 1–480 whole minutes, test 1 and 480 as valid boundaries, and 0, 481 and a fractional value as invalid.",items:["Happy path: the expected user action succeeds.","Validation: missing, malformed and boundary inputs behave predictably.","Permissions: unauthorised actions are rejected.","Persistence: refresh and repeated actions preserve the intended state.","Failure recovery: users receive useful feedback and can retry safely.","Accessibility: the workflow is usable with a keyboard and meaningful labels."]},{title:"Record evidence per criterion",text:"Record the build or commit, environment, steps, actual result and any supporting evidence. A green unit-test suite is useful, but it does not by itself prove every product criterion. Mark untested behaviour as Not tested and record a failure with reproduction steps."},{title:"Re-test after implementation changes",text:"Previous passes apply to the work that was tested. When a new implementation or a changed requirement affects a ticket, preserve the old QA as history and test the current criteria again. Accord separates AI-reported evidence from recorded QA so an implementation report does not silently complete a ticket."}]},{slug:"ai-development-change-requests",title:"Manage software change requests during AI-assisted development",description:"Keep AI coding work aligned with approved requirements using linked change requests, clarification decisions, scoped tickets and fresh QA evidence.",intro:"A coding agent can implement quickly while still implementing the wrong interpretation. A useful change process keeps the current agreement, pending decisions and verification evidence visible to everyone.",sections:[{title:"Write the change as a before-and-after decision",text:"Capture the current behaviour, proposed behaviour, reason and affected requirement. For example: “Expenses above R10,000 need finance approval after manager approval.” That is a scope change if the baseline required only one approval. Ask for an estimate and record the owner’s decision before treating it as agreed work."},{title:"Give the agent a bounded implementation brief",text:"Include the original request, current requirement revision, acceptance criteria, linked tickets, relevant decisions and QA failures. Identify the repository and design references the agent can actually access. Explicitly list excluded work. Accord exports this context and can send it to a connected local Codex runner."},{title:"Treat clarifying questions as project decisions",text:"If the agent asks about a business rule, present the question with its context and collect an answer from the decision maker. Save the answer in the project and resume the same work with that decision. Do not hide material ambiguity in a terminal log or let silence become approval."},{title:"Choose development skills and verify their use",text:"A team can request practices such as test-driven development or systematic debugging. In Accord, selected skills are instructions for the runner. The actual skill must be available, and missing skills should be raised before coding. Review the report for evidence of use; selecting a skill is not proof that it was followed."},{title:"Close the loop with QA and rework",text:"Ask the agent to report changes, commands, results and unverified criteria. QA should test the current implementation against the agreement. Feed reproduction steps and failures into the next run, while labelling older evidence as historical. Approve completion only after the current criteria pass with recorded evidence."},{title:"Where a requirements system adds value",text:"ChatGPT and Codex can help draft requirements and implement software directly. Accord adds a shared record of approved scope, linked work, clarification answers, change history and QA outcomes. Its value depends on keeping that record accurate and using it to guide implementation decisions."}]}],d={path:"/about",title:"Software requirements management and AI delivery | Accord",description:"Turn software requests into agreed requirements, linked tickets and testable acceptance criteria. Guide Codex implementation with scope, decisions and QA feedback."},e={path:"/guides",title:"Software requirements and QA guides | Accord",description:"Practical guides for writing software requirements, defining acceptance criteria and managing change requests throughout AI-assisted development."},f=[d,e,...c.map(a=>({path:`/guides/${a.slug}`,title:`${a.title} | Accord`,description:a.description}))];a.s(["guideIndex",0,e,"guides",0,c,"overview",0,d,"pageMetadata",0,function(a){return{title:{absolute:a.title},description:a.description,alternates:{canonical:b+a.path},robots:{index:!0,follow:!0},openGraph:{type:"website",locale:"en_US",siteName:"Accord",title:a.title,description:a.description,url:b+a.path},twitter:{card:"summary",title:a.title,description:a.description}}},"publicPages",0,f,"siteOrigin",0,b,"structuredData",0,function(a){return{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":b+"/about#organization",name:"Accord",url:b+"/about"},{"@type":"WebSite","@id":b+"/about#website",name:"Accord",url:b+"/about",inLanguage:"en",publisher:{"@id":b+"/about#organization"}},{"@type":"WebPage","@id":b+a.path+"#page",url:b+a.path,name:a.title,description:a.description,inLanguage:"en",isPartOf:{"@id":b+"/about#website"}},..."/about"===a.path?[{"@type":"SoftwareApplication",name:"Accord",url:b+"/about",applicationCategory:"BusinessApplication",operatingSystem:"Web browser",description:a.description,featureList:["Requirements and scope baselines","Linked development tickets","Acceptance criteria and QA history","Codex runner and clarification questions","Development skill selection"]}]:[],{"@type":"BreadcrumbList",itemListElement:[{name:"Accord",item:b+"/about"},...a.path.startsWith("/guides")?[{name:"Guides",item:b+"/guides"}]:[],...a.path.startsWith("/guides/")?[{name:a.title.replace(" | Accord",""),item:b+a.path}]:[]].map((a,b)=>({"@type":"ListItem",position:b+1,...a}))}]}}])}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_0_b-2rs._.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
module.exports=[83675,a=>{"use strict";var b=a.i(87924);let c=(0,a.i(64831).default)("printer",[["path",{d:"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2",key:"143wyd"}],["path",{d:"M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6",key:"1itne7"}],["rect",{x:"6",y:"14",width:"12",height:"8",rx:"1",key:"1ue0tg"}]]);a.s(["default",0,function(){return(0,b.jsxs)("button",{className:"button primary",onClick:()=>window.print(),children:[(0,b.jsx)(c,{size:16})," Save as PDF"]})}],83675)},64831,a=>{"use strict";var b=a.i(72131);let c=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim(),d=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let f=(0,b.createContext)({}),g=(0,b.forwardRef)(({color:a,size:d,strokeWidth:g,absoluteStrokeWidth:h,className:i="",children:j,iconNode:k,...l},m)=>{let{size:n=24,strokeWidth:o=2,absoluteStrokeWidth:p=!1,color:q="currentColor",className:r=""}=(0,b.useContext)(f)??{},s=h??p?24*Number(g??o)/Number(d??n):g??o;return(0,b.createElement)("svg",{ref:m,...e,width:d??n??e.width,height:d??n??e.height,stroke:a??q,strokeWidth:s,className:c("lucide",r,i),...!j&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(l)&&{"aria-hidden":"true"},...l},[...k.map(([a,c])=>(0,b.createElement)(a,c)),...Array.isArray(j)?j:[j]])});a.s(["default",0,(a,e)=>{let f=(0,b.forwardRef)(({className:f,...h},i)=>(0,b.createElement)(g,{ref:i,iconNode:e,className:c(`lucide-${d(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,f),...h}));return f.displayName=d(a),f}],64831)}];
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=_1ofgw5a._.js.map
|