@capagents/forgeqe 0.0.0-stage → 1.0.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.
Files changed (220) hide show
  1. package/HOW_TO_USE.md +1639 -0
  2. package/README.md +338 -2
  3. package/bin/forgeqe.d.ts +3 -0
  4. package/bin/forgeqe.js +188 -0
  5. package/docs/ARCHITECTURE.md +408 -0
  6. package/docs/security-data-flow.html +1870 -0
  7. package/docs/user-guide.html +2094 -0
  8. package/evals/domain/access-role-change.yaml +37 -0
  9. package/evals/domain/banking-payment-transfer.yaml +41 -0
  10. package/evals/domain/gdpr-account-erasure.yaml +30 -0
  11. package/evals/domain/insurance-claim-fnol.yaml +30 -0
  12. package/evals/domain/insurance-policy-renewal.yaml +37 -0
  13. package/evals/domain/lending-loan-application.yaml +36 -0
  14. package/forgeqe-architecture.html +718 -0
  15. package/forgeqe.example.yaml +203 -0
  16. package/knowledge/README.md +18 -0
  17. package/knowledge/business-rules.md +10 -0
  18. package/knowledge/compliance.md +16 -0
  19. package/knowledge/environments.md +5 -0
  20. package/knowledge/glossary.md +5 -0
  21. package/knowledge/product.md +16 -0
  22. package/knowledge/roles.md +9 -0
  23. package/knowledge/test-data.md +7 -0
  24. package/llms.example.json +51 -0
  25. package/package.json +63 -4
  26. package/prompts/README.md +34 -0
  27. package/prompts/api-scenarios.md +21 -0
  28. package/prompts/api-tests.md +39 -0
  29. package/prompts/brain.md +166 -0
  30. package/prompts/browser-capture.md +7 -0
  31. package/prompts/browser-case-report.md +7 -0
  32. package/prompts/browser-checks.md +14 -0
  33. package/prompts/browser-efficiency.md +7 -0
  34. package/prompts/browser-error-recovery.md +15 -0
  35. package/prompts/browser-extra.md +5 -0
  36. package/prompts/browser-goal-verification.md +13 -0
  37. package/prompts/browser-skill-select.md +6 -0
  38. package/prompts/domain-rule.md +13 -0
  39. package/prompts/eval-judge.md +19 -0
  40. package/prompts/explore-charters.md +27 -0
  41. package/prompts/find-tests.md +28 -0
  42. package/prompts/heal.md +40 -0
  43. package/prompts/pr-review.md +29 -0
  44. package/prompts/skill-rule.md +6 -0
  45. package/prompts/test-agent.md +34 -0
  46. package/prompts/test-reviewer.md +30 -0
  47. package/prompts/test-rules.md +28 -0
  48. package/py/forgeqe_engine/__init__.py +3 -0
  49. package/py/forgeqe_engine/__main__.py +3 -0
  50. package/py/forgeqe_engine/brand.py +453 -0
  51. package/py/forgeqe_engine/brand_assets.py +6 -0
  52. package/py/forgeqe_engine/browser.py +196 -0
  53. package/py/forgeqe_engine/capture.py +538 -0
  54. package/py/forgeqe_engine/checks.py +98 -0
  55. package/py/forgeqe_engine/cli.py +188 -0
  56. package/py/forgeqe_engine/diagnostics.py +609 -0
  57. package/py/forgeqe_engine/llm.py +195 -0
  58. package/py/forgeqe_engine/logins.py +251 -0
  59. package/py/forgeqe_engine/loops.py +224 -0
  60. package/py/forgeqe_engine/memory.py +1004 -0
  61. package/py/forgeqe_engine/network.py +244 -0
  62. package/py/forgeqe_engine/prompts.py +20 -0
  63. package/py/forgeqe_engine/replay.py +240 -0
  64. package/py/forgeqe_engine/report.py +173 -0
  65. package/py/forgeqe_engine/service.py +1335 -0
  66. package/py/forgeqe_engine/settings.py +93 -0
  67. package/py/forgeqe_engine/skills.py +88 -0
  68. package/py/forgeqe_engine/summary.py +239 -0
  69. package/py/forgeqe_engine/urls.py +81 -0
  70. package/py/forgeqe_engine/workflow_yaml.py +689 -0
  71. package/skills/dotnet-nunit-playwright/SKILL.md +34 -0
  72. package/skills/dynamics-365/SKILL.md +21 -0
  73. package/skills/playwright-typescript/SKILL.md +35 -0
  74. package/skills/writing-skills/SKILL.md +30 -0
  75. package/src/api/plan.ts +246 -0
  76. package/src/api/run.ts +204 -0
  77. package/src/api/scenario.ts +502 -0
  78. package/src/api/schema.ts +170 -0
  79. package/src/api/spec.ts +624 -0
  80. package/src/api/store.ts +232 -0
  81. package/src/api/traffic.ts +281 -0
  82. package/src/api/types.ts +163 -0
  83. package/src/api/write.ts +272 -0
  84. package/src/auth/signin.ts +494 -0
  85. package/src/auth/store.ts +170 -0
  86. package/src/brain/index.ts +189 -0
  87. package/src/brain/prompt.ts +19 -0
  88. package/src/capabilities/docs.ts +101 -0
  89. package/src/capabilities/guide.ts +455 -0
  90. package/src/capabilities/registry.ts +343 -0
  91. package/src/capabilities/render.ts +106 -0
  92. package/src/capabilities/status.ts +137 -0
  93. package/src/card.ts +11 -0
  94. package/src/cases/ado.ts +325 -0
  95. package/src/cases/api.ts +117 -0
  96. package/src/cases/bugs.ts +223 -0
  97. package/src/cases/confluence.ts +111 -0
  98. package/src/cases/context.ts +223 -0
  99. package/src/cases/dashboards.ts +137 -0
  100. package/src/cases/failure.ts +97 -0
  101. package/src/cases/files.ts +295 -0
  102. package/src/cases/goal.ts +53 -0
  103. package/src/cases/http.ts +111 -0
  104. package/src/cases/index.ts +131 -0
  105. package/src/cases/jira.ts +122 -0
  106. package/src/cases/qtest.ts +108 -0
  107. package/src/cases/quality.ts +190 -0
  108. package/src/cases/rag.ts +100 -0
  109. package/src/cases/readiness.ts +284 -0
  110. package/src/cases/save.ts +149 -0
  111. package/src/cases/sprints.ts +148 -0
  112. package/src/cases/testrail.ts +176 -0
  113. package/src/cases/types.ts +107 -0
  114. package/src/cases/wiki.ts +105 -0
  115. package/src/cases/xray.ts +206 -0
  116. package/src/cases/zephyr.ts +153 -0
  117. package/src/childEnv.ts +86 -0
  118. package/src/cli/args.ts +114 -0
  119. package/src/cli/help.ts +167 -0
  120. package/src/cli/index.ts +1142 -0
  121. package/src/cli/terminal.ts +187 -0
  122. package/src/code/areas.ts +337 -0
  123. package/src/code/attention.ts +214 -0
  124. package/src/code/find.ts +540 -0
  125. package/src/code/handoff.ts +541 -0
  126. package/src/code/history.ts +170 -0
  127. package/src/code/impact.ts +231 -0
  128. package/src/code/index.ts +34 -0
  129. package/src/code/livebrowser.ts +67 -0
  130. package/src/code/loop.ts +603 -0
  131. package/src/code/notes.ts +75 -0
  132. package/src/code/profile.ts +226 -0
  133. package/src/code/prompt.ts +303 -0
  134. package/src/code/prreview.ts +649 -0
  135. package/src/code/prtests.ts +103 -0
  136. package/src/code/replay.ts +772 -0
  137. package/src/code/review.ts +202 -0
  138. package/src/code/runtime.ts +781 -0
  139. package/src/code/slices.ts +159 -0
  140. package/src/code/testrun.ts +187 -0
  141. package/src/code/traceability.ts +100 -0
  142. package/src/code/worktree.ts +153 -0
  143. package/src/commands.ts +101 -0
  144. package/src/config.ts +970 -0
  145. package/src/detail.ts +65 -0
  146. package/src/domain.ts +19 -0
  147. package/src/engine/bridge.ts +359 -0
  148. package/src/engine/mock.ts +102 -0
  149. package/src/engine/setup.ts +298 -0
  150. package/src/entra.ts +154 -0
  151. package/src/env.ts +24 -0
  152. package/src/evals/domain.ts +338 -0
  153. package/src/explore/charters.ts +151 -0
  154. package/src/explore/run.ts +280 -0
  155. package/src/explore/story.ts +106 -0
  156. package/src/guard.ts +51 -0
  157. package/src/heal/loop.ts +357 -0
  158. package/src/heal/prompt.ts +143 -0
  159. package/src/heal/report.ts +95 -0
  160. package/src/index.ts +12 -0
  161. package/src/init.ts +102 -0
  162. package/src/knowledge.ts +114 -0
  163. package/src/legacyEnv.ts +9 -0
  164. package/src/llm.ts +61 -0
  165. package/src/locale.ts +25 -0
  166. package/src/logins.ts +148 -0
  167. package/src/managed.ts +101 -0
  168. package/src/mcp/apitools.ts +335 -0
  169. package/src/mcp/captools.ts +25 -0
  170. package/src/mcp/casetools.ts +223 -0
  171. package/src/mcp/commands.ts +421 -0
  172. package/src/mcp/exploretools.ts +129 -0
  173. package/src/mcp/external.ts +172 -0
  174. package/src/mcp/git.ts +78 -0
  175. package/src/mcp/notifytools.ts +49 -0
  176. package/src/mcp/prtools.ts +261 -0
  177. package/src/mcp/qualitytools.ts +154 -0
  178. package/src/mcp/repotests.ts +286 -0
  179. package/src/mcp/server.ts +234 -0
  180. package/src/mcp/tools.ts +810 -0
  181. package/src/memory.ts +250 -0
  182. package/src/money.ts +39 -0
  183. package/src/monitor/alerts.ts +94 -0
  184. package/src/monitor/background.ts +68 -0
  185. package/src/monitor/run.ts +263 -0
  186. package/src/monitor/state.ts +105 -0
  187. package/src/notify/events.ts +144 -0
  188. package/src/notify/notice.ts +177 -0
  189. package/src/prices.ts +175 -0
  190. package/src/print.ts +54 -0
  191. package/src/privacy.ts +35 -0
  192. package/src/prompts.ts +165 -0
  193. package/src/quality/budgets.ts +249 -0
  194. package/src/quality/history.ts +149 -0
  195. package/src/quality/visual.ts +201 -0
  196. package/src/report/data.ts +475 -0
  197. package/src/report/html.ts +106 -0
  198. package/src/report/template.html +84 -0
  199. package/src/run.ts +243 -0
  200. package/src/sessionLog.ts +216 -0
  201. package/src/sessionLogins.ts +94 -0
  202. package/src/skills/registry.ts +217 -0
  203. package/src/skills/scaffold.ts +65 -0
  204. package/src/skills/select.ts +37 -0
  205. package/src/skills/view.ts +44 -0
  206. package/src/suite/report.ts +135 -0
  207. package/src/suite/run.ts +303 -0
  208. package/src/summary.ts +188 -0
  209. package/src/tools.ts +130 -0
  210. package/src/tui/App.tsx +983 -0
  211. package/src/tui/clipboard.ts +36 -0
  212. package/src/tui/components.tsx +263 -0
  213. package/src/tui/dialogs.ts +65 -0
  214. package/src/tui/main.tsx +20 -0
  215. package/src/tui/text.ts +28 -0
  216. package/src/tui/theme.ts +104 -0
  217. package/src/tui/transcript.tsx +344 -0
  218. package/src/types.ts +146 -0
  219. package/src/update.ts +311 -0
  220. package/src/usage.ts +158 -0
@@ -0,0 +1,37 @@
1
+ id: access-role-change
2
+ title: Assign roles in the admin console
3
+ domain:
4
+ industry: financial services back office
5
+ regulations: [ISO 27001, SOX]
6
+ compliance: |
7
+ ## Controls in scope
8
+ - CTL-ACC-02 (ISO 27001, SOX): a role change takes effect only after a second administrator approves it (maker-checker).
9
+ - CTL-AUD-03 (ISO 27001, SOX): every role change is logged with who requested it, who approved it, when, and the old and new roles.
10
+ story:
11
+ title: Give a user a role
12
+ description: As an administrator I want to give a user a role in the back-office console, so that they can do their job.
13
+ acceptance: |
14
+ - The administrator searches for a user, picks a role, and saves.
15
+ - The user's roles list shows the new role.
16
+ expect:
17
+ - id: assigned
18
+ source: story
19
+ covers: After saving, the user's roles list shows the new role.
20
+ - id: maker-checker
21
+ source: regulation
22
+ covers: A second administrator must approve the change before it takes effect; the requester cannot approve their own request.
23
+ - id: self-grant
24
+ source: regulation
25
+ covers: An administrator cannot give a role to themselves.
26
+ - id: audit
27
+ source: regulation
28
+ covers: The change is logged with who requested and approved it, when, and the old and new roles.
29
+ - id: unauthorised
30
+ source: domain
31
+ covers: A user without administrator rights cannot open the console or assign roles, including by going to its URL directly.
32
+ - id: revoke
33
+ source: domain
34
+ covers: Removing a role takes effect at once, including for a user who is signed in.
35
+ - id: conflicting-roles
36
+ source: regulation
37
+ covers: Roles that must not be held together (for example creating and approving payments) cannot be given to the same user.
@@ -0,0 +1,41 @@
1
+ id: banking-payment-transfer
2
+ title: Send money to a saved beneficiary
3
+ domain:
4
+ industry: retail banking
5
+ regulations: [PSD2, DORA, GDPR]
6
+ compliance: |
7
+ ## Controls in scope
8
+ - CTL-AUD-01 (DORA, ISO 27001): every payment and every change to a beneficiary is written to the audit log with who, when, and the values.
9
+ - CTL-SCA-01 (PSD2): initiating a payment requires strong customer authentication (two of knowledge, possession, inherence).
10
+ story:
11
+ title: Pay a saved beneficiary
12
+ description: As a customer I want to send money from my current account to a beneficiary I saved earlier, so that I do not have to type their details again.
13
+ acceptance: |
14
+ - The customer picks a saved beneficiary, enters an amount and a reference, and confirms.
15
+ - A confirmation page shows the amount, the beneficiary, and the reference.
16
+ - The account balance shows the payment.
17
+ expect:
18
+ - id: confirmation
19
+ source: story
20
+ covers: The confirmation shows the amount, beneficiary, and reference entered.
21
+ - id: duplicate
22
+ source: domain
23
+ covers: Submitting twice (double click, refresh, or back and resubmit) does not create a second payment.
24
+ - id: funds-limits
25
+ source: domain
26
+ covers: An amount above the available balance or a payment limit is refused with a clear message and no payment is made.
27
+ - id: amount-format
28
+ source: domain
29
+ covers: Zero, negative, and amounts with more than two decimals are refused.
30
+ - id: execution-date
31
+ source: domain
32
+ covers: Payments made after the cut-off time or on a non-business day show and use the correct execution date.
33
+ - id: sca
34
+ source: regulation
35
+ covers: Confirming the payment requires strong customer authentication (for example a one-time code); without it no payment is made.
36
+ - id: audit
37
+ source: regulation
38
+ covers: The payment is recorded in the audit log with who made it, when, and the details.
39
+ - id: failure
40
+ source: regulation
41
+ covers: When the payment service fails or times out, the customer sees a clear error and no partial or unknown payment results (operational resilience).
@@ -0,0 +1,30 @@
1
+ id: gdpr-account-erasure
2
+ title: Delete my account
3
+ domain:
4
+ industry: online retail
5
+ regulations: [GDPR]
6
+ story:
7
+ title: Delete my account
8
+ description: As a customer I want to delete my account, so that the shop no longer has my data.
9
+ acceptance: |
10
+ - The customer chooses Delete account in My account and confirms.
11
+ - The customer is signed out and sees a confirmation.
12
+ expect:
13
+ - id: confirmed
14
+ source: story
15
+ covers: After confirming, the customer is signed out and sees a confirmation.
16
+ - id: reauth
17
+ source: domain
18
+ covers: Deleting the account asks the customer to prove it is them again (password or one-time code) first.
19
+ - id: data-gone
20
+ source: regulation
21
+ covers: The customer's personal data (profile, addresses, saved payment methods) is removed, and the account can no longer be signed in to.
22
+ - id: retained
23
+ source: regulation
24
+ covers: Records the shop must keep by law (for example invoices) are kept, without more personal data than that obligation needs.
25
+ - id: marketing
26
+ source: regulation
27
+ covers: Marketing messages stop after the account is deleted.
28
+ - id: open-orders
29
+ source: domain
30
+ covers: An account with open orders or a pending refund is handled first (blocked with an explanation, or deleted only after they complete).
@@ -0,0 +1,30 @@
1
+ id: insurance-claim-fnol
2
+ title: Report a home insurance claim
3
+ domain:
4
+ industry: home insurance
5
+ regulations: [GDPR]
6
+ story:
7
+ title: Report a claim online
8
+ description: As a policyholder I want to report damage to my home online, so that my claim starts without a phone call.
9
+ acceptance: |
10
+ - The customer enters the date of the incident, what happened, and uploads photos.
11
+ - On submit, a claim reference is shown.
12
+ expect:
13
+ - id: reference
14
+ source: story
15
+ covers: Submitting the claim shows a claim reference.
16
+ - id: cover-dates
17
+ source: domain
18
+ covers: An incident date before the policy started, after it ended, or in the future is refused.
19
+ - id: duplicate-claim
20
+ source: domain
21
+ covers: A second claim for the same incident is detected or flagged instead of creating an unrelated duplicate.
22
+ - id: uploads
23
+ source: domain
24
+ covers: Uploads of an unsupported type or over the size limit are refused with a clear message, and valid ones are kept.
25
+ - id: lapsed
26
+ source: domain
27
+ covers: A claim on a cancelled or lapsed policy is refused or routed for review.
28
+ - id: minimisation
29
+ source: regulation
30
+ covers: The form asks only for data the claim needs, and the claim's personal data is visible only to the customer and authorised claim handlers.
@@ -0,0 +1,37 @@
1
+ id: insurance-policy-renewal
2
+ title: Renew a motor policy online
3
+ domain:
4
+ industry: personal lines motor insurance
5
+ regulations: [IDD, GDPR]
6
+ compliance: |
7
+ ## Controls in scope
8
+ - CTL-IDD-03 (IDD): the insurance product information document and the demands and needs statement are shown before the customer accepts.
9
+ story:
10
+ title: Renew my car insurance online
11
+ description: As a policyholder I want to renew my motor policy online from the renewal invitation, so that I stay covered.
12
+ acceptance: |
13
+ - The renewal page shows the renewal premium and the cover.
14
+ - The customer can change their annual mileage before accepting.
15
+ - The customer accepts and pays, and sees a renewal confirmation.
16
+ expect:
17
+ - id: confirmation
18
+ source: story
19
+ covers: Accepting and paying shows a renewal confirmation.
20
+ - id: premium-recalc
21
+ source: domain
22
+ covers: Changing the annual mileage recalculates the premium before acceptance, and the accepted premium is the recalculated one.
23
+ - id: dates
24
+ source: domain
25
+ covers: The renewed policy starts the day after the current one ends, with no gap or overlap in cover.
26
+ - id: quote-expiry
27
+ source: domain
28
+ covers: A renewal quote that has expired, or a policy that has already lapsed, cannot be accepted as it stands.
29
+ - id: payment-failure
30
+ source: domain
31
+ covers: A failed or declined payment leaves the policy not renewed and tells the customer.
32
+ - id: pre-contract-info
33
+ source: regulation
34
+ covers: The product information document and the demands and needs statement are shown before the customer can accept.
35
+ - id: consent
36
+ source: regulation
37
+ covers: Marketing consent is asked separately and is not pre-ticked; renewal does not depend on it.
@@ -0,0 +1,36 @@
1
+ id: lending-loan-application
2
+ title: Apply for a personal loan
3
+ domain:
4
+ industry: consumer lending
5
+ regulations: [Consumer Credit Directive, AML, GDPR]
6
+ story:
7
+ title: Apply for a personal loan
8
+ description: As a customer I want to apply for a personal loan online and get a decision, so that I can borrow quickly.
9
+ acceptance: |
10
+ - The customer enters the amount, the term, and their income and outgoings.
11
+ - The customer submits and sees whether the loan is approved.
12
+ expect:
13
+ - id: decision
14
+ source: story
15
+ covers: Submitting the application shows a decision.
16
+ - id: identity
17
+ source: regulation
18
+ covers: The customer's identity is verified before a loan is granted (anti-money laundering checks), and a failed check stops or refers the application.
19
+ - id: affordability
20
+ source: regulation
21
+ covers: Income and outgoings are used to assess affordability; an unaffordable loan is not approved as asked.
22
+ - id: cost-disclosure
23
+ source: regulation
24
+ covers: The APR, the total amount payable, and the repayments are shown before the customer commits.
25
+ - id: withdrawal
26
+ source: regulation
27
+ covers: The customer is told of the right to withdraw from the agreement (14 days).
28
+ - id: eligibility
29
+ source: domain
30
+ covers: Applicants under 18, and amounts or terms outside the product's range, are refused.
31
+ - id: automated-decision
32
+ source: regulation
33
+ covers: A declined applicant is told the outcome and can ask for the decision to be reviewed by a person.
34
+ - id: credit-check-consent
35
+ source: regulation
36
+ covers: The customer is told a credit check will be made before it is made.