@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.
- package/HOW_TO_USE.md +1639 -0
- package/README.md +338 -2
- package/bin/forgeqe.d.ts +3 -0
- package/bin/forgeqe.js +188 -0
- package/docs/ARCHITECTURE.md +408 -0
- package/docs/security-data-flow.html +1870 -0
- package/docs/user-guide.html +2094 -0
- package/evals/domain/access-role-change.yaml +37 -0
- package/evals/domain/banking-payment-transfer.yaml +41 -0
- package/evals/domain/gdpr-account-erasure.yaml +30 -0
- package/evals/domain/insurance-claim-fnol.yaml +30 -0
- package/evals/domain/insurance-policy-renewal.yaml +37 -0
- package/evals/domain/lending-loan-application.yaml +36 -0
- package/forgeqe-architecture.html +718 -0
- package/forgeqe.example.yaml +203 -0
- package/knowledge/README.md +18 -0
- package/knowledge/business-rules.md +10 -0
- package/knowledge/compliance.md +16 -0
- package/knowledge/environments.md +5 -0
- package/knowledge/glossary.md +5 -0
- package/knowledge/product.md +16 -0
- package/knowledge/roles.md +9 -0
- package/knowledge/test-data.md +7 -0
- package/llms.example.json +51 -0
- package/package.json +63 -4
- package/prompts/README.md +34 -0
- package/prompts/api-scenarios.md +21 -0
- package/prompts/api-tests.md +39 -0
- package/prompts/brain.md +166 -0
- package/prompts/browser-capture.md +7 -0
- package/prompts/browser-case-report.md +7 -0
- package/prompts/browser-checks.md +14 -0
- package/prompts/browser-efficiency.md +7 -0
- package/prompts/browser-error-recovery.md +15 -0
- package/prompts/browser-extra.md +5 -0
- package/prompts/browser-goal-verification.md +13 -0
- package/prompts/browser-skill-select.md +6 -0
- package/prompts/domain-rule.md +13 -0
- package/prompts/eval-judge.md +19 -0
- package/prompts/explore-charters.md +27 -0
- package/prompts/find-tests.md +28 -0
- package/prompts/heal.md +40 -0
- package/prompts/pr-review.md +29 -0
- package/prompts/skill-rule.md +6 -0
- package/prompts/test-agent.md +34 -0
- package/prompts/test-reviewer.md +30 -0
- package/prompts/test-rules.md +28 -0
- package/py/forgeqe_engine/__init__.py +3 -0
- package/py/forgeqe_engine/__main__.py +3 -0
- package/py/forgeqe_engine/brand.py +453 -0
- package/py/forgeqe_engine/brand_assets.py +6 -0
- package/py/forgeqe_engine/browser.py +196 -0
- package/py/forgeqe_engine/capture.py +538 -0
- package/py/forgeqe_engine/checks.py +98 -0
- package/py/forgeqe_engine/cli.py +188 -0
- package/py/forgeqe_engine/diagnostics.py +609 -0
- package/py/forgeqe_engine/llm.py +195 -0
- package/py/forgeqe_engine/logins.py +251 -0
- package/py/forgeqe_engine/loops.py +224 -0
- package/py/forgeqe_engine/memory.py +1004 -0
- package/py/forgeqe_engine/network.py +244 -0
- package/py/forgeqe_engine/prompts.py +20 -0
- package/py/forgeqe_engine/replay.py +240 -0
- package/py/forgeqe_engine/report.py +173 -0
- package/py/forgeqe_engine/service.py +1335 -0
- package/py/forgeqe_engine/settings.py +93 -0
- package/py/forgeqe_engine/skills.py +88 -0
- package/py/forgeqe_engine/summary.py +239 -0
- package/py/forgeqe_engine/urls.py +81 -0
- package/py/forgeqe_engine/workflow_yaml.py +689 -0
- package/skills/dotnet-nunit-playwright/SKILL.md +34 -0
- package/skills/dynamics-365/SKILL.md +21 -0
- package/skills/playwright-typescript/SKILL.md +35 -0
- package/skills/writing-skills/SKILL.md +30 -0
- package/src/api/plan.ts +246 -0
- package/src/api/run.ts +204 -0
- package/src/api/scenario.ts +502 -0
- package/src/api/schema.ts +170 -0
- package/src/api/spec.ts +624 -0
- package/src/api/store.ts +232 -0
- package/src/api/traffic.ts +281 -0
- package/src/api/types.ts +163 -0
- package/src/api/write.ts +272 -0
- package/src/auth/signin.ts +494 -0
- package/src/auth/store.ts +170 -0
- package/src/brain/index.ts +189 -0
- package/src/brain/prompt.ts +19 -0
- package/src/capabilities/docs.ts +101 -0
- package/src/capabilities/guide.ts +455 -0
- package/src/capabilities/registry.ts +343 -0
- package/src/capabilities/render.ts +106 -0
- package/src/capabilities/status.ts +137 -0
- package/src/card.ts +11 -0
- package/src/cases/ado.ts +325 -0
- package/src/cases/api.ts +117 -0
- package/src/cases/bugs.ts +223 -0
- package/src/cases/confluence.ts +111 -0
- package/src/cases/context.ts +223 -0
- package/src/cases/dashboards.ts +137 -0
- package/src/cases/failure.ts +97 -0
- package/src/cases/files.ts +295 -0
- package/src/cases/goal.ts +53 -0
- package/src/cases/http.ts +111 -0
- package/src/cases/index.ts +131 -0
- package/src/cases/jira.ts +122 -0
- package/src/cases/qtest.ts +108 -0
- package/src/cases/quality.ts +190 -0
- package/src/cases/rag.ts +100 -0
- package/src/cases/readiness.ts +284 -0
- package/src/cases/save.ts +149 -0
- package/src/cases/sprints.ts +148 -0
- package/src/cases/testrail.ts +176 -0
- package/src/cases/types.ts +107 -0
- package/src/cases/wiki.ts +105 -0
- package/src/cases/xray.ts +206 -0
- package/src/cases/zephyr.ts +153 -0
- package/src/childEnv.ts +86 -0
- package/src/cli/args.ts +114 -0
- package/src/cli/help.ts +167 -0
- package/src/cli/index.ts +1142 -0
- package/src/cli/terminal.ts +187 -0
- package/src/code/areas.ts +337 -0
- package/src/code/attention.ts +214 -0
- package/src/code/find.ts +540 -0
- package/src/code/handoff.ts +541 -0
- package/src/code/history.ts +170 -0
- package/src/code/impact.ts +231 -0
- package/src/code/index.ts +34 -0
- package/src/code/livebrowser.ts +67 -0
- package/src/code/loop.ts +603 -0
- package/src/code/notes.ts +75 -0
- package/src/code/profile.ts +226 -0
- package/src/code/prompt.ts +303 -0
- package/src/code/prreview.ts +649 -0
- package/src/code/prtests.ts +103 -0
- package/src/code/replay.ts +772 -0
- package/src/code/review.ts +202 -0
- package/src/code/runtime.ts +781 -0
- package/src/code/slices.ts +159 -0
- package/src/code/testrun.ts +187 -0
- package/src/code/traceability.ts +100 -0
- package/src/code/worktree.ts +153 -0
- package/src/commands.ts +101 -0
- package/src/config.ts +970 -0
- package/src/detail.ts +65 -0
- package/src/domain.ts +19 -0
- package/src/engine/bridge.ts +359 -0
- package/src/engine/mock.ts +102 -0
- package/src/engine/setup.ts +298 -0
- package/src/entra.ts +154 -0
- package/src/env.ts +24 -0
- package/src/evals/domain.ts +338 -0
- package/src/explore/charters.ts +151 -0
- package/src/explore/run.ts +280 -0
- package/src/explore/story.ts +106 -0
- package/src/guard.ts +51 -0
- package/src/heal/loop.ts +357 -0
- package/src/heal/prompt.ts +143 -0
- package/src/heal/report.ts +95 -0
- package/src/index.ts +12 -0
- package/src/init.ts +102 -0
- package/src/knowledge.ts +114 -0
- package/src/legacyEnv.ts +9 -0
- package/src/llm.ts +61 -0
- package/src/locale.ts +25 -0
- package/src/logins.ts +148 -0
- package/src/managed.ts +101 -0
- package/src/mcp/apitools.ts +335 -0
- package/src/mcp/captools.ts +25 -0
- package/src/mcp/casetools.ts +223 -0
- package/src/mcp/commands.ts +421 -0
- package/src/mcp/exploretools.ts +129 -0
- package/src/mcp/external.ts +172 -0
- package/src/mcp/git.ts +78 -0
- package/src/mcp/notifytools.ts +49 -0
- package/src/mcp/prtools.ts +261 -0
- package/src/mcp/qualitytools.ts +154 -0
- package/src/mcp/repotests.ts +286 -0
- package/src/mcp/server.ts +234 -0
- package/src/mcp/tools.ts +810 -0
- package/src/memory.ts +250 -0
- package/src/money.ts +39 -0
- package/src/monitor/alerts.ts +94 -0
- package/src/monitor/background.ts +68 -0
- package/src/monitor/run.ts +263 -0
- package/src/monitor/state.ts +105 -0
- package/src/notify/events.ts +144 -0
- package/src/notify/notice.ts +177 -0
- package/src/prices.ts +175 -0
- package/src/print.ts +54 -0
- package/src/privacy.ts +35 -0
- package/src/prompts.ts +165 -0
- package/src/quality/budgets.ts +249 -0
- package/src/quality/history.ts +149 -0
- package/src/quality/visual.ts +201 -0
- package/src/report/data.ts +475 -0
- package/src/report/html.ts +106 -0
- package/src/report/template.html +84 -0
- package/src/run.ts +243 -0
- package/src/sessionLog.ts +216 -0
- package/src/sessionLogins.ts +94 -0
- package/src/skills/registry.ts +217 -0
- package/src/skills/scaffold.ts +65 -0
- package/src/skills/select.ts +37 -0
- package/src/skills/view.ts +44 -0
- package/src/suite/report.ts +135 -0
- package/src/suite/run.ts +303 -0
- package/src/summary.ts +188 -0
- package/src/tools.ts +130 -0
- package/src/tui/App.tsx +983 -0
- package/src/tui/clipboard.ts +36 -0
- package/src/tui/components.tsx +263 -0
- package/src/tui/dialogs.ts +65 -0
- package/src/tui/main.tsx +20 -0
- package/src/tui/text.ts +28 -0
- package/src/tui/theme.ts +104 -0
- package/src/tui/transcript.tsx +344 -0
- package/src/types.ts +146 -0
- package/src/update.ts +311 -0
- 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.
|