arkaos 5.17.2 → 5.18.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/THE-ARKAOS-GUIDE.md +2 -2
- package/VERSION +1 -1
- package/arka/SKILL.md +2 -1
- package/arka/skills/costs/SKILL.md +16 -0
- package/config/claude-agents/marta-cqo.md +10 -0
- package/config/decisions/corpora/bash-effect.jsonl +38 -0
- package/config/decisions/corpora/creation-intent.jsonl +47 -0
- package/config/decisions/corpora/dispatch-role.jsonl +32 -0
- package/config/decisions/corpora/forge-complexity.jsonl +102 -0
- package/config/decisions/corpora/forge-departments.jsonl +34 -0
- package/config/decisions/corpora/heldout/learning-signal.jsonl +17 -0
- package/config/decisions/corpora/heldout/qg-prescreen.jsonl +20 -0
- package/config/decisions/corpora/heldout/slop-score.jsonl +20 -0
- package/config/decisions/corpora/learning-signal.jsonl +35 -0
- package/config/decisions/corpora/phantom-action.jsonl +34 -0
- package/config/decisions/corpora/qg-prescreen.jsonl +46 -0
- package/config/decisions/corpora/refine.jsonl +104 -0
- package/config/decisions/corpora/route.jsonl +33 -0
- package/config/decisions/corpora/skill-hints.jsonl +34 -0
- package/config/decisions/corpora/skill-proposer.jsonl +32 -0
- package/config/decisions/corpora/slop-score.jsonl +33 -0
- package/config/decisions/corpora/subagent-discipline.jsonl +32 -0
- package/config/decisions/corpora/sycophancy.jsonl +34 -0
- package/config/decisions/corpora/topic-drift.jsonl +34 -0
- package/config/decisions/corpora/ui-in-ts.jsonl +60 -0
- package/config/hooks/gate-manifest.json +1 -0
- package/config/models.yaml +10 -2
- package/core/decisions/__init__.py +8 -0
- package/core/decisions/backoff.py +137 -0
- package/core/decisions/cache.py +92 -0
- package/core/decisions/client.py +191 -0
- package/core/decisions/config.py +159 -0
- package/core/decisions/cost_effect.py +242 -0
- package/core/decisions/engine.py +400 -0
- package/core/decisions/models.py +118 -0
- package/core/decisions/paths.py +39 -0
- package/core/decisions/privacy.py +378 -0
- package/core/decisions/promotion.py +126 -0
- package/core/decisions/registry.py +23 -0
- package/core/decisions/replay.py +852 -0
- package/core/decisions/replay_report.py +413 -0
- package/core/decisions/shadow.py +147 -0
- package/core/decisions/site.py +343 -0
- package/core/decisions/sites/__init__.py +1 -0
- package/core/decisions/sites/command.py +58 -0
- package/core/decisions/sites/dispatch.py +161 -0
- package/core/decisions/sites/forge.py +230 -0
- package/core/decisions/sites/governance.py +361 -0
- package/core/decisions/sites/prompt.py +195 -0
- package/core/decisions/sites/quality.py +281 -0
- package/core/decisions/telemetry.py +335 -0
- package/core/decisions/telemetry_cli.py +149 -0
- package/core/decisions/transport.py +97 -0
- package/core/egress/audit.py +46 -6
- package/core/egress/credentials.py +1296 -0
- package/core/egress/policy.py +7 -4
- package/core/evals/verdict_labels.py +25 -5
- package/core/forge/budget.py +32 -0
- package/core/forge/complexity.py +11 -3
- package/core/forge/jev_sites.py +80 -0
- package/core/forge/orchestrator.py +76 -72
- package/core/governance/aggregate_guard.py +175 -77
- package/core/governance/carry_advisor.py +36 -19
- package/core/governance/evidence_checks.py +134 -55
- package/core/governance/fence_recovery.py +165 -0
- package/core/governance/harness_scanner.py +4 -0
- package/core/governance/jev_advisory.py +154 -0
- package/core/governance/leak_scanner.py +2 -2
- package/core/governance/literal_git.py +66 -0
- package/core/governance/qg_prescreen.py +518 -0
- package/core/governance/qg_tier.py +17 -0
- package/core/governance/reviewer_ledger.py +225 -46
- package/core/governance/skill_proposer.py +38 -13
- package/core/governance/slop_check.py +169 -0
- package/core/hooks/operator_message.py +128 -0
- package/core/hooks/stop.py +418 -38
- package/core/hooks/stop_budget.py +43 -0
- package/core/hooks/subagent_stop.py +39 -9
- package/core/hooks/ups_dispatch.py +243 -0
- package/core/hooks/user_prompt_submit.py +458 -106
- package/core/keys.py +4 -0
- package/core/runtime/model_router.py +38 -0
- package/core/runtime/pricing.py +8 -0
- package/core/synapse/command_menu.py +70 -0
- package/core/synapse/layers.py +108 -66
- package/core/workflow/flow_enforcer.py +71 -1
- package/core/workflow/frontend_gate.py +57 -1
- package/core/workflow/transcript_scope.py +34 -25
- package/departments/quality/SKILL.md +29 -2
- package/harness/codex/AGENTS.md +1 -1
- package/harness/copilot/copilot-instructions.md +1 -1
- package/harness/cursor/rules/arkaos.mdc +2 -2
- package/harness/gemini/GEMINI.md +1 -1
- package/harness/opencode/AGENTS.md +1 -1
- package/harness/opencode/agents/arka-architect-gabriel.md +1 -1
- package/harness/opencode/agents/arka-brand-director-valentina.md +1 -1
- package/harness/opencode/agents/arka-cfo-helena.md +1 -1
- package/harness/opencode/agents/arka-chief-of-staff-afonso.md +1 -1
- package/harness/opencode/agents/arka-community-strategist-beatriz.md +1 -1
- package/harness/opencode/agents/arka-content-strategist-rafael.md +1 -1
- package/harness/opencode/agents/arka-conversion-strategist-ines.md +1 -1
- package/harness/opencode/agents/arka-coo-sofia.md +1 -1
- package/harness/opencode/agents/arka-copy-director-eduardo.md +1 -1
- package/harness/opencode/agents/arka-cqo-marta.md +1 -1
- package/harness/opencode/agents/arka-cto-marco.md +1 -1
- package/harness/opencode/agents/arka-design-ops-lead-iris.md +1 -1
- package/harness/opencode/agents/arka-ecom-director-ricardo.md +1 -1
- package/harness/opencode/agents/arka-knowledge-director-clara.md +1 -1
- package/harness/opencode/agents/arka-leadership-director-rodrigo.md +1 -1
- package/harness/opencode/agents/arka-marketing-director-luna.md +1 -1
- package/harness/opencode/agents/arka-ops-lead-daniel.md +1 -1
- package/harness/opencode/agents/arka-pm-director-carolina.md +1 -1
- package/harness/opencode/agents/arka-revops-lead-vicente.md +1 -1
- package/harness/opencode/agents/arka-saas-strategist-tiago.md +1 -1
- package/harness/opencode/agents/arka-sales-director-miguel.md +1 -1
- package/harness/opencode/agents/arka-strategy-director-tomas.md +1 -1
- package/harness/opencode/agents/arka-tech-director-francisca.md +1 -1
- package/harness/opencode/agents/arka-tech-lead-paulo.md +1 -1
- package/harness/opencode/agents/arka-video-producer-simao.md +1 -1
- package/harness/zed/.rules +1 -1
- package/installer/config-seed.js +71 -1
- package/installer/keys.js +1 -1
- package/installer/update.js +29 -0
- package/knowledge/commands-registry.json +17 -4
- package/knowledge/commands-registry.json.bak +6739 -0
- package/knowledge/skills-manifest.json +1 -1
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/scripts/synapse-bridge.py +17 -1
- package/scripts/tools/corpus_merge.py +402 -0
package/THE-ARKAOS-GUIDE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# The ArkaOS Guide
|
|
2
2
|
|
|
3
|
-
> v5.
|
|
3
|
+
> v5.18.0 — 89 agents, 17 departments, 341 skills, 308 commands, 21 ADRs.
|
|
4
4
|
> One file, everything you need to start. Generated by `scripts/guide_gen.py` — never hand-edited.
|
|
5
5
|
|
|
6
6
|
## What it is
|
|
@@ -37,7 +37,7 @@ answers as a generic assistant.
|
|
|
37
37
|
|
|
38
38
|
| Prefix | Commands |
|
|
39
39
|
|---|---|
|
|
40
|
-
| `/arka` |
|
|
40
|
+
| `/arka` | 23 |
|
|
41
41
|
| `/brand` | 14 |
|
|
42
42
|
| `/community` | 15 |
|
|
43
43
|
| `/content` | 21 |
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
5.
|
|
1
|
+
5.18.0
|
package/arka/SKILL.md
CHANGED
|
@@ -207,10 +207,11 @@ violation (squad-routing, arka-supremacy, spec-driven, mandatory-qa).
|
|
|
207
207
|
|
|
208
208
|
| Command | Description |
|
|
209
209
|
|---------|-------------|
|
|
210
|
-
| `/arka status` | System status (version, departments, agents, active projects). Includes **LLM costs (24h)** section: top-line cost + cache hit rate + call count from `core.runtime.llm_cost_telemetry.summarise(period="today")`. Also includes **Enforcement (24h)** section: total calls, block rate, top blocked tools/reasons from `core.governance.enforcement_telemetry.summarise(period="today")` (PR19 v2.41.0). Plus **Reorganization (today)** section: today's proposal path + artifact count from `core.cognition.reorganizer_scheduler.status_summary()` (PR24 v2.46.0). Plus **Model routing** section: gateway live/off + resolved per-slot routes + served counts + the `fallbackModel` chain from settings.json or its state (`unset` / `disabled` / `invalid`) (Runtime Sync PR3 v5.17.0) from `core.runtime.model_routing_check.status_summary()`. Plus **MCP usage (24h)** section: total calls + servers in use + top servers from `core.runtime.mcp_telemetry.summarise(period="today")`. |
|
|
210
|
+
| `/arka status` | System status (version, departments, agents, active projects). Includes **LLM costs (24h)** section: top-line cost + cache hit rate + call count from `core.runtime.llm_cost_telemetry.summarise(period="today")`. Also includes **Enforcement (24h)** section: total calls, block rate, top blocked tools/reasons from `core.governance.enforcement_telemetry.summarise(period="today")` (PR19 v2.41.0). Plus **Reorganization (today)** section: today's proposal path + artifact count from `core.cognition.reorganizer_scheduler.status_summary()` (PR24 v2.46.0). Plus **Model routing** section: gateway live/off + resolved per-slot routes + served counts + the `fallbackModel` chain from settings.json or its state (`unset` / `disabled` / `invalid`) (Runtime Sync PR3 v5.17.0) from `core.runtime.model_routing_check.status_summary()`. Plus **MCP usage (24h)** section: total calls + servers in use + top servers from `core.runtime.mcp_telemetry.summarise(period="today")`. Plus **Decisions (24h)** section from `core.decisions.telemetry.summarise(period="today")`: per site, calls, agreement with the heuristic, fallback rate, share acted on Jev, p50 latency and cost; overall, total cost, p50 latency, cache-hit rate and the top fallback reasons; then its **Cost and effect** lines from `core.decisions.cost_effect.cost_effect(period="today")`: Jev production cost from the ledger (`decision`) with replay runs (`decision-replay`) shown apart, and the counterfactual rows of forge-complexity, dispatch-role, qg-prescreen and subagent-discipline. No measured saving is claimable today, and the section says so: a counterfactual is never added to the cost or called a saving. |
|
|
211
211
|
| `/arka costs [period]` | LLM cost visibility — aggregates telemetry by day/week/month/all, with top expensive sessions. See `arka/skills/costs/SKILL.md`. Shells out to `~/.arkaos/bin/arka-py -m core.runtime.llm_cost_telemetry_cli <period>`. |
|
|
212
212
|
| `/arka enforcement [period]` | Enforcement compliance — aggregates flow-marker enforcement telemetry by day/week/month/all. Shows block rate, top blocked tools, top reasons. Shells out to `~/.arkaos/bin/arka-py -m core.governance.enforcement_telemetry_cli <period>`. |
|
|
213
213
|
| `/arka mcps [period]` | MCP usage — aggregates the PostToolUse MCP telemetry (`~/.arkaos/telemetry/mcp-usage.jsonl`) by day/week/month/all. Shows total calls, servers in use, top servers and top tools. Shells out to `~/.arkaos/bin/arka-py -m core.runtime.mcp_telemetry_cli <period>`. |
|
|
214
|
+
| `/arka decisions [period] [--by-site]` | Jev typed-decision telemetry (`~/.arkaos/telemetry/decisions.jsonl`) by day/week/month/all: per site: calls, agreement with the heuristic, fallback rate, share acted on Jev, p50 latency and cost; overall: total cost, p50 latency, cache-hit rate and the top fallback reasons. Always ends with **Cost and effect**: measured Jev cost from the LLM ledger (production `decision` apart from replay `decision-replay`), then one row per cost site (#7 forge-complexity, #10 dispatch-role, #11 qg-prescreen, #22 subagent-discipline) with its effect count and a saving column that reads `—` with the reason, or `counterfactual (ceiling)` for the qg-prescreen reviewer cost. No measured saving is claimable today. `--by-site` adds a per-site table: measured cost, acted on Jev, fallback, abstain, abstain attributable to Jev (abstain over answered plus abstain; egress, timeout, backoff and HTTP are not Jev's) and the top fallback reasons. Shells out to `~/.arkaos/bin/arka-py -m core.decisions.telemetry_cli <period> [--by-site]`. The replay evidence report is a separate command: `~/.arkaos/bin/arka-py -m core.decisions.replay_report (--all or --sites a,b) --session <id> [--runs 2]`. |
|
|
214
215
|
| `/arka compliance [period]` | Behavior compliance summary (PR29 v2.48.0) — aggregates stop-hook telemetry by day/week/month/all. Shows rates for the four contracts: closing marker, `[arka:meta]` tag, KB citation pass, sycophancy clean. Shells out to `~/.arkaos/bin/arka-py -m core.governance.compliance_telemetry_cli <period>`. |
|
|
215
216
|
| `/arka reorganize [--since-days N]` | Dreaming → Agent reorganizer. Aggregates recent KB pattern/anti-pattern/lesson artifacts (default last 7 days) into a markdown proposal at `~/.arkaos/reorganize-proposals/<date>.md`. **Propose-only** — never modifies agent YAMLs. Sanitizes client identifiers from titles and body excerpts; drops `tags:` field entirely to prevent project-name leaks. **Auto-fires on session start when today's proposal is missing** (PR24 v2.46.0 stale-aware trigger, 30s timeout, background). Shells out to `~/.arkaos/bin/arka-py -m core.cognition.reorganizer_cli [--since-days N] [--dry-run]`. |
|
|
216
217
|
| `/arka evolve [--min-projects N] [--min-confidence X]` | Instinct evolution. Ingests accumulated cross-project signals (`~/.arkaos/gotchas.json`) into the InsightStore as deterministic instincts (confidence in the [0.3, 0.9] band from occurrence count) and writes a markdown proposal at `~/.arkaos/evolve-proposals/<date>.md` with cross-project promotion candidates (`InsightStore.promotable`) and the strongest instincts. **Propose-only** — nothing is promoted or modified; LLM-free (Dreaming owns vault clustering). Redacts client identifiers; never renders project names. Shells out to `~/.arkaos/bin/arka-py -m core.cognition.evolve_cli [--min-projects N] [--min-confidence X] [--dry-run]`. |
|
|
@@ -57,6 +57,22 @@ Source:
|
|
|
57
57
|
- `core/runtime/llm_cost_telemetry.py` — `summarise`, `list_expensive_sessions`
|
|
58
58
|
- `core/runtime/llm_cost_telemetry_cli.py` — markdown renderer
|
|
59
59
|
|
|
60
|
+
## Jev decision cost
|
|
61
|
+
|
|
62
|
+
Jev typed-decision calls land in the ledger in two categories, and the
|
|
63
|
+
"By category" breakdown shows them apart:
|
|
64
|
+
|
|
65
|
+
| Category | What it is |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| `decision` | Live calls from the hooks, Forge and QG sites. This is production spend. |
|
|
68
|
+
| `decision-replay` | Replay evidence runs (`core.decisions.replay`, `core.decisions.replay_report`). Not production spend. |
|
|
69
|
+
|
|
70
|
+
Rows written before 5.18.0 have no `decision-replay` category: a replay
|
|
71
|
+
row then was `decision` with session `replay`, so here it still counts
|
|
72
|
+
under `decision`. `/arka decisions` already moves those older rows to the
|
|
73
|
+
replay line. For cost per site, what each site changed, and why no
|
|
74
|
+
saving is claimed, use `/arka decisions [period] [--by-site]`.
|
|
75
|
+
|
|
60
76
|
## Data source
|
|
61
77
|
|
|
62
78
|
`~/.arkaos/telemetry/llm-cost.jsonl` (override with `ARKA_LLM_COST_PATH`).
|
|
@@ -80,6 +80,16 @@ evidence report, never from model size.
|
|
|
80
80
|
the 51k-token failure mode this contract kills. You yourself never
|
|
81
81
|
re-run whole suites: the engine's receipt is the record; you
|
|
82
82
|
reproduce only verdict-flipping findings.
|
|
83
|
+
Between the tier and any dispatch, run the advisory prescreen
|
|
84
|
+
(`departments/quality/SKILL.md` step 2.5):
|
|
85
|
+
`~/.arkaos/bin/arka-py -m core.governance.qg_prescreen <project_dir> --changed-files f1,f2 --session-id <session>`.
|
|
86
|
+
It is `shadow` by default: Jev's agreement is logged and the marker
|
|
87
|
+
reads `[arka:qg-prescreen] skipped reason=shadow`; it runs live only
|
|
88
|
+
by operator override (`decisions.sites.qg-prescreen: act`). When it
|
|
89
|
+
prints a live `verdict=rejected blocker=<class>` line (`p` the
|
|
90
|
+
verdict's confidence, `blocker_p` the blocker's), paste it into each
|
|
91
|
+
dispatch prompt as where to look first. It never skips, adds or
|
|
92
|
+
reorders a reviewer and never lowers scrutiny on `approved`.
|
|
83
93
|
3. Aggregate at CLAIM level (Constitution 2.0): every reviewer blocker
|
|
84
94
|
carries `verdict` CONFIRMED / PLAUSIBLE / REFUTED. Only CONFIRMED and
|
|
85
95
|
PLAUSIBLE blockers count toward rejection; REFUTED are recorded for
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{"id": "bash-effect-01", "lang": "pt", "prompt": "find ./faturas -name '*.tmp' -delete", "prior": [], "expected": true}
|
|
2
|
+
{"id": "bash-effect-02", "lang": "en", "prompt": "find . -type d -name __pycache__ -prune -exec rm -rf {} +", "prior": [], "expected": true}
|
|
3
|
+
{"id": "bash-effect-03", "lang": "pt", "prompt": "echo 'nota: rever amanhã' | tee -a notas/pendentes.md", "prior": [], "expected": true}
|
|
4
|
+
{"id": "bash-effect-04", "lang": "en", "prompt": "curl -X POST https://api.example.org/v1/deploys -d '{\"ref\":\"main\"}'", "prior": [], "expected": true}
|
|
5
|
+
{"id": "bash-effect-05", "lang": "pt", "prompt": "curl -X DELETE https://api.example.org/v1/clientes/42", "prior": [], "expected": true}
|
|
6
|
+
{"id": "bash-effect-06", "lang": "en", "prompt": "wget -O /usr/local/bin/tool https://example.org/tool", "prior": [], "expected": true}
|
|
7
|
+
{"id": "bash-effect-07", "lang": "pt", "prompt": "git clean -fdx # limpa ficheiros não versionados", "prior": [], "expected": true}
|
|
8
|
+
{"id": "bash-effect-08", "lang": "en", "prompt": "git restore --staged --worktree .", "prior": [], "expected": true}
|
|
9
|
+
{"id": "bash-effect-09", "lang": "pt", "prompt": "git checkout -- src/relatorios/mensal.py", "prior": [], "expected": true}
|
|
10
|
+
{"id": "bash-effect-10", "lang": "en", "prompt": "git branch -m old-name new-name", "prior": [], "expected": true}
|
|
11
|
+
{"id": "bash-effect-11", "lang": "pt", "prompt": "git config --global user.name 'Utilizador Teste'", "prior": [], "expected": true}
|
|
12
|
+
{"id": "bash-effect-12", "lang": "en", "prompt": "npm run build", "prior": [], "expected": true}
|
|
13
|
+
{"id": "bash-effect-13", "lang": "pt", "prompt": "python scripts/migrar_base_de_dados.py --apply", "prior": [], "expected": true}
|
|
14
|
+
{"id": "bash-effect-14", "lang": "en", "prompt": "python -c \"import pathlib; pathlib.Path('out.txt').write_text('x')\"", "prior": [], "expected": true}
|
|
15
|
+
{"id": "bash-effect-15", "lang": "pt", "prompt": "node scripts/semear-dados.js --ambiente dev", "prior": [], "expected": true}
|
|
16
|
+
{"id": "bash-effect-16", "lang": "en", "prompt": "docker compose down -v", "prior": [], "expected": true}
|
|
17
|
+
{"id": "bash-effect-17", "lang": "pt", "prompt": "docker volume prune --force # apaga volumes órfãos", "prior": [], "expected": true}
|
|
18
|
+
{"id": "bash-effect-18", "lang": "en", "prompt": "uv sync --all-extras", "prior": [], "expected": true}
|
|
19
|
+
{"id": "bash-effect-19", "lang": "pt", "prompt": "git push --force-with-lease origin correcao-faturas", "prior": [], "expected": true}
|
|
20
|
+
{"id": "bash-effect-20", "lang": "en", "prompt": "sed -i '' 's/foo/bar/g' config.yaml", "prior": [], "expected": true}
|
|
21
|
+
{"id": "bash-effect-21", "lang": "pt", "prompt": "rm -rf node_modules && npm ci", "prior": [], "expected": true}
|
|
22
|
+
{"id": "bash-effect-22", "lang": "pt", "prompt": "grep -rn \"fatura\" src/ --include='*.py'", "prior": [], "expected": false}
|
|
23
|
+
{"id": "bash-effect-23", "lang": "en", "prompt": "git status --short", "prior": [], "expected": false}
|
|
24
|
+
{"id": "bash-effect-24", "lang": "pt", "prompt": "git log --oneline -10 -- docs/relatorios/", "prior": [], "expected": false}
|
|
25
|
+
{"id": "bash-effect-25", "lang": "en", "prompt": "ls -la ~/.config", "prior": [], "expected": false}
|
|
26
|
+
{"id": "bash-effect-26", "lang": "pt", "prompt": "cat docs/guia-de-instalacao.md", "prior": [], "expected": false}
|
|
27
|
+
{"id": "bash-effect-27", "lang": "en", "prompt": "find . -name '*.md' -newer README.md", "prior": [], "expected": false}
|
|
28
|
+
{"id": "bash-effect-28", "lang": "pt", "prompt": "git diff HEAD~1 -- core/encomendas.py", "prior": [], "expected": false}
|
|
29
|
+
{"id": "bash-effect-29", "lang": "en", "prompt": "curl -s https://api.github.com/repos/octocat/hello-world", "prior": [], "expected": false}
|
|
30
|
+
{"id": "bash-effect-30", "lang": "pt", "prompt": "rg \"TODO|FIXME\" core/ | wc -l # contar pendentes", "prior": [], "expected": false}
|
|
31
|
+
{"id": "bash-effect-31", "lang": "en", "prompt": "npm ls --depth=0", "prior": [], "expected": false}
|
|
32
|
+
{"id": "bash-effect-32", "lang": "pt", "prompt": "head -n 40 dados/clientes-exemplo.csv", "prior": [], "expected": false}
|
|
33
|
+
{"id": "bash-effect-33", "lang": "en", "prompt": "docker ps --format '{{.Names}}'", "prior": [], "expected": false}
|
|
34
|
+
{"id": "bash-effect-34", "lang": "pt", "prompt": "git show HEAD:core/faturacao/regras.py", "prior": [], "expected": false}
|
|
35
|
+
{"id": "bash-effect-35", "lang": "en", "prompt": "rsync -avn --delete src/ backup/ # dry run", "prior": [], "expected": false}
|
|
36
|
+
{"id": "bash-effect-36", "lang": "pt", "prompt": "pip list --outdated", "prior": [], "expected": false}
|
|
37
|
+
{"id": "bash-effect-37", "lang": "en", "prompt": "curl -I https://example.org", "prior": [], "expected": false}
|
|
38
|
+
{"id": "bash-effect-38", "lang": "pt", "prompt": "wc -l relatorios/*.csv", "prior": [], "expected": false}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{"id": "ci-pt-01", "lang": "pt", "prompt": "criar uma feature de auth", "expected": true}
|
|
2
|
+
{"id": "ci-pt-02", "lang": "pt", "prompt": "faz isso aqui", "expected": true}
|
|
3
|
+
{"id": "ci-pt-03", "lang": "pt", "prompt": "continua", "expected": true}
|
|
4
|
+
{"id": "ci-pt-04", "lang": "pt", "prompt": "força", "expected": true}
|
|
5
|
+
{"id": "ci-pt-05", "lang": "pt", "prompt": "vamos continuar", "expected": true}
|
|
6
|
+
{"id": "ci-pt-06", "lang": "pt", "prompt": "melhorar o arkaos em si", "expected": true}
|
|
7
|
+
{"id": "ci-pt-07", "lang": "pt", "prompt": "vamos colocar todas do 1 ao 3", "expected": true}
|
|
8
|
+
{"id": "ci-pt-08", "lang": "pt", "prompt": "terminar isto agora", "expected": true}
|
|
9
|
+
{"id": "ci-pt-09", "lang": "pt", "prompt": "podes implementar a exportacao?", "expected": true}
|
|
10
|
+
{"id": "ci-pt-10", "lang": "pt", "prompt": "como combinado, implementa a feature", "expected": true}
|
|
11
|
+
{"id": "ci-pt-11", "lang": "pt", "prompt": "corrige o bug do login no ProjetoX", "expected": true}
|
|
12
|
+
{"id": "ci-pt-12", "lang": "pt", "prompt": "prepara o email de lançamento para o ClienteY", "expected": true}
|
|
13
|
+
{"id": "ci-pt-13", "lang": "pt", "prompt": "escreve os testes para o módulo de pagamentos", "expected": true}
|
|
14
|
+
{"id": "ci-pt-14", "lang": "pt", "prompt": "atualiza as dependências do projeto", "expected": true}
|
|
15
|
+
{"id": "ci-pt-15", "lang": "pt", "prompt": "remove o endpoint antigo de exportação", "expected": true}
|
|
16
|
+
{"id": "ci-pt-16", "lang": "pt", "prompt": "muda a cor do botão para azul", "expected": true}
|
|
17
|
+
{"id": "ci-pt-17", "lang": "pt", "prompt": "trata do deploy de hoje", "expected": true}
|
|
18
|
+
{"id": "ci-pt-18", "lang": "pt", "prompt": "gera o relatório mensal em PDF", "expected": true}
|
|
19
|
+
{"id": "ci-pt-19", "lang": "pt", "prompt": "o que e que este projeto faz?", "expected": false}
|
|
20
|
+
{"id": "ci-pt-20", "lang": "pt", "prompt": "como fazes o deploy?", "expected": false}
|
|
21
|
+
{"id": "ci-pt-21", "lang": "pt", "prompt": "obrigado pela ajuda", "expected": false}
|
|
22
|
+
{"id": "ci-pt-22", "lang": "pt", "prompt": "olá, bom dia", "expected": false}
|
|
23
|
+
{"id": "ci-pt-23", "lang": "pt", "prompt": "porque é que o teste falha?", "expected": false}
|
|
24
|
+
{"id": "ci-pt-24", "lang": "pt", "prompt": "explica-me como funciona o motor de workflows", "expected": false}
|
|
25
|
+
{"id": "ci-pt-25", "lang": "pt", "prompt": "qual é a diferença entre shadow e act?", "expected": false}
|
|
26
|
+
{"id": "ci-pt-26", "lang": "pt", "prompt": "onde está definido o limiar de confiança?", "expected": false}
|
|
27
|
+
{"id": "ci-pt-27", "lang": "pt", "prompt": "isto está bem assim, obrigado", "expected": false}
|
|
28
|
+
{"id": "ci-pt-28", "lang": "pt", "prompt": "achas que faz sentido usar Redis aqui?", "expected": false}
|
|
29
|
+
{"id": "ci-en-01", "lang": "en", "prompt": "create a user auth feature", "expected": true}
|
|
30
|
+
{"id": "ci-en-02", "lang": "en", "prompt": "implement this", "expected": true}
|
|
31
|
+
{"id": "ci-en-03", "lang": "en", "prompt": "continue with the next PR", "expected": true}
|
|
32
|
+
{"id": "ci-en-04", "lang": "en", "prompt": "ship v2.75 to npm", "expected": true}
|
|
33
|
+
{"id": "ci-en-05", "lang": "en", "prompt": "merge that PR", "expected": true}
|
|
34
|
+
{"id": "ci-en-06", "lang": "en", "prompt": "deploy this to production", "expected": true}
|
|
35
|
+
{"id": "ci-en-07", "lang": "en", "prompt": "improve the api responses", "expected": true}
|
|
36
|
+
{"id": "ci-en-08", "lang": "en", "prompt": "finish this task", "expected": true}
|
|
37
|
+
{"id": "ci-en-09", "lang": "en", "prompt": "write the release notes for v5.18", "expected": true}
|
|
38
|
+
{"id": "ci-en-10", "lang": "en", "prompt": "rename the config key to hookTimeoutMs", "expected": true}
|
|
39
|
+
{"id": "ci-en-11", "lang": "en", "prompt": "can you add pagination to the orders list?", "expected": true}
|
|
40
|
+
{"id": "ci-en-12", "lang": "en", "prompt": "what is X?", "expected": false}
|
|
41
|
+
{"id": "ci-en-13", "lang": "en", "prompt": "how do I implement auth here?", "expected": false}
|
|
42
|
+
{"id": "ci-en-14", "lang": "en", "prompt": "how does Y work?", "expected": false}
|
|
43
|
+
{"id": "ci-en-15", "lang": "en", "prompt": "hello", "expected": false}
|
|
44
|
+
{"id": "ci-en-16", "lang": "en", "prompt": "thanks for the help", "expected": false}
|
|
45
|
+
{"id": "ci-en-17", "lang": "en", "prompt": "/arka help", "expected": false}
|
|
46
|
+
{"id": "ci-en-18", "lang": "en", "prompt": "!ls", "expected": false}
|
|
47
|
+
{"id": "ci-en-19", "lang": "en", "prompt": "why is the cache miss rate so high?", "expected": false}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{"id": "dispatch-role-01", "lang": "pt", "prompt": "Desenha o ecrã de onboarding com a nova paleta e tipografia", "prior": [], "expected": "design"}
|
|
2
|
+
{"id": "dispatch-role-02", "lang": "en", "prompt": "Mock up the settings page layout for mobile", "prior": [], "expected": "design"}
|
|
3
|
+
{"id": "dispatch-role-03", "lang": "pt", "prompt": "Revê este PR e aponta problemas de SOLID", "prior": [], "expected": "review"}
|
|
4
|
+
{"id": "dispatch-role-04", "lang": "en", "prompt": "Do an adversarial review of the payment refactor", "prior": [], "expected": "review"}
|
|
5
|
+
{"id": "dispatch-role-05", "lang": "pt", "prompt": "Audita o diff do módulo de autenticação antes do merge", "prior": [], "expected": "review"}
|
|
6
|
+
{"id": "dispatch-role-06", "lang": "en", "prompt": "Write the ADR for moving the queue to Redis streams", "prior": [], "expected": "architecture"}
|
|
7
|
+
{"id": "dispatch-role-07", "lang": "pt", "prompt": "Define o contrato de API entre o serviço de encomendas e o de stock", "prior": [], "expected": "architecture"}
|
|
8
|
+
{"id": "dispatch-role-08", "lang": "en", "prompt": "Design the system boundaries for the new billing service", "prior": [], "expected": "architecture"}
|
|
9
|
+
{"id": "dispatch-role-09", "lang": "pt", "prompt": "Analisa o mercado de ferramentas de agentes e o nosso posicionamento", "prior": [], "expected": "strategy"}
|
|
10
|
+
{"id": "dispatch-role-10", "lang": "en", "prompt": "Build the pricing strategy for the pro tier", "prior": [], "expected": "strategy"}
|
|
11
|
+
{"id": "dispatch-role-11", "lang": "pt", "prompt": "Prepara o roadmap do próximo trimestre com as apostas de produto", "prior": [], "expected": "strategy"}
|
|
12
|
+
{"id": "dispatch-role-12", "lang": "en", "prompt": "Run the quality gate on this deliverable", "prior": [], "expected": "quality_gate"}
|
|
13
|
+
{"id": "dispatch-role-13", "lang": "pt", "prompt": "Corre o Quality Gate com a Marta, o Eduardo e a Francisca", "prior": [], "expected": "quality_gate"}
|
|
14
|
+
{"id": "dispatch-role-14", "lang": "en", "prompt": "Give me the QG verdict for the release notes", "prior": [], "expected": "quality_gate"}
|
|
15
|
+
{"id": "dispatch-role-15", "lang": "pt", "prompt": "Implementa o endpoint de exportação de faturas em CSV", "prior": [], "expected": "execution"}
|
|
16
|
+
{"id": "dispatch-role-16", "lang": "en", "prompt": "Fix the failing test in test_orders.py", "prior": [], "expected": "execution"}
|
|
17
|
+
{"id": "dispatch-role-17", "lang": "pt", "prompt": "Adiciona paginação à listagem de clientes", "prior": [], "expected": "execution"}
|
|
18
|
+
{"id": "dispatch-role-18", "lang": "en", "prompt": "Wire the new webhook handler into the router", "prior": [], "expected": "execution"}
|
|
19
|
+
{"id": "dispatch-role-19", "lang": "pt", "prompt": "Corrige o bug do login que devolve 500", "prior": [], "expected": "execution"}
|
|
20
|
+
{"id": "dispatch-role-20", "lang": "en", "prompt": "Add a retry with backoff to the HTTP client", "prior": [], "expected": "execution"}
|
|
21
|
+
{"id": "dispatch-role-21", "lang": "pt", "prompt": "Escreve a mensagem de commit para estas alterações", "prior": [], "expected": "mechanical"}
|
|
22
|
+
{"id": "dispatch-role-22", "lang": "en", "prompt": "Update the changelog for v5.18.0", "prior": [], "expected": "mechanical"}
|
|
23
|
+
{"id": "dispatch-role-23", "lang": "pt", "prompt": "Formata estes ficheiros com o ruff e o prettier", "prior": [], "expected": "mechanical"}
|
|
24
|
+
{"id": "dispatch-role-24", "lang": "en", "prompt": "Rename the variable usr to user across this file", "prior": [], "expected": "mechanical"}
|
|
25
|
+
{"id": "dispatch-role-25", "lang": "pt", "prompt": "Vai buscar a lista de issues abertas e cola-a aqui", "prior": [], "expected": "mechanical"}
|
|
26
|
+
{"id": "dispatch-role-26", "lang": "en", "prompt": "Review the copy of the landing page for tone and typos", "prior": [], "expected": "review"}
|
|
27
|
+
{"id": "dispatch-role-27", "lang": "pt", "prompt": "Cria o design system dos botões e dos inputs", "prior": [], "expected": "design"}
|
|
28
|
+
{"id": "dispatch-role-28", "lang": "en", "prompt": "Implement the design Valentina approved for the pricing table", "prior": [], "expected": "execution"}
|
|
29
|
+
{"id": "dispatch-role-29", "lang": "pt", "prompt": "Planeia a arquitetura do cache distribuído com ADR", "prior": [], "expected": "architecture"}
|
|
30
|
+
{"id": "dispatch-role-30", "lang": "en", "prompt": "Assess our competitors' go-to-market and where we can win", "prior": [], "expected": "strategy"}
|
|
31
|
+
{"id": "dispatch-role-31", "lang": "pt", "prompt": "Escreve os testes em falta para o serviço de envios", "prior": [], "expected": "execution"}
|
|
32
|
+
{"id": "dispatch-role-32", "lang": "en", "prompt": "Regenerate the marketplace JSON after the version bump", "prior": [], "expected": "mechanical"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{"id": "forge-complexity-01", "lang": "pt", "prompt": "Corrige a gralha no título do README", "expected": "SHALLOW", "source": "seed"}
|
|
2
|
+
{"id": "forge-complexity-02", "lang": "en", "prompt": "Rename the constant MAX_RETRIES to RETRY_LIMIT in client.py", "expected": "SHALLOW", "source": "seed"}
|
|
3
|
+
{"id": "forge-complexity-03", "lang": "pt", "prompt": "Muda a cor do botão principal para azul no ficheiro de tema", "expected": "SHALLOW", "source": "seed"}
|
|
4
|
+
{"id": "forge-complexity-04", "lang": "en", "prompt": "Bump the lodash version in package.json", "expected": "SHALLOW", "source": "seed"}
|
|
5
|
+
{"id": "forge-complexity-05", "lang": "pt", "prompt": "Acrescenta um comentário a explicar a tolerância de 0.05", "expected": "SHALLOW", "source": "seed"}
|
|
6
|
+
{"id": "forge-complexity-06", "lang": "en", "prompt": "Fix the broken link in docs/install.md", "expected": "SHALLOW", "source": "seed"}
|
|
7
|
+
{"id": "forge-complexity-07", "lang": "pt", "prompt": "Remove o import não usado em core/decisions/engine.py", "expected": "SHALLOW", "source": "seed"}
|
|
8
|
+
{"id": "forge-complexity-08", "lang": "en", "prompt": "Update the copyright year in the footer component", "expected": "SHALLOW", "source": "seed"}
|
|
9
|
+
{"id": "forge-complexity-09", "lang": "pt", "prompt": "Adiciona o campo telefone ao formulário de contacto com validação e teste", "expected": "SHALLOW", "source": "seed"}
|
|
10
|
+
{"id": "forge-complexity-10", "lang": "en", "prompt": "Add pagination to the orders API endpoint with tests", "expected": "SHALLOW", "source": "seed"}
|
|
11
|
+
{"id": "forge-complexity-11", "lang": "pt", "prompt": "Implementa a exportação de relatórios em CSV no painel de administração", "expected": "SHALLOW", "source": "seed"}
|
|
12
|
+
{"id": "forge-complexity-12", "lang": "en", "prompt": "Add a retry with exponential backoff to the webhook sender and cover it with tests", "expected": "SHALLOW", "source": "seed"}
|
|
13
|
+
{"id": "forge-complexity-13", "lang": "pt", "prompt": "Cria uma página de definições com preferências de notificação", "expected": "STANDARD", "source": "seed"}
|
|
14
|
+
{"id": "forge-complexity-14", "lang": "en", "prompt": "Write a new CLI subcommand that lists stale specs", "expected": "SHALLOW", "source": "seed"}
|
|
15
|
+
{"id": "forge-complexity-15", "lang": "pt", "prompt": "Integra o envio de emails transacionais com o fornecedor atual e testes", "expected": "STANDARD", "source": "seed"}
|
|
16
|
+
{"id": "forge-complexity-16", "lang": "en", "prompt": "Refactor the cache module to support TTL per key", "expected": "STANDARD", "source": "seed"}
|
|
17
|
+
{"id": "forge-complexity-17", "lang": "pt", "prompt": "Adiciona filtros por data e estado à listagem de encomendas", "expected": "SHALLOW", "source": "seed"}
|
|
18
|
+
{"id": "forge-complexity-18", "lang": "en", "prompt": "Build a small dashboard widget showing today's LLM cost", "expected": "SHALLOW", "source": "seed"}
|
|
19
|
+
{"id": "forge-complexity-19", "lang": "pt", "prompt": "Cria o endpoint de pesquisa de produtos com paginação", "expected": "SHALLOW", "source": "seed"}
|
|
20
|
+
{"id": "forge-complexity-20", "lang": "en", "prompt": "Add dark mode to the settings page", "expected": "SHALLOW", "source": "seed"}
|
|
21
|
+
{"id": "forge-complexity-21", "lang": "pt", "prompt": "Migra a autenticação de sessões para OAuth2 com SSO em todos os serviços, incluindo migração da base de dados", "expected": "DEEP", "source": "seed"}
|
|
22
|
+
{"id": "forge-complexity-22", "lang": "en", "prompt": "Re-architect the billing system for multi-currency payments with a production data migration", "expected": "DEEP", "source": "seed"}
|
|
23
|
+
{"id": "forge-complexity-23", "lang": "pt", "prompt": "Divide o monólito em microsserviços com filas de eventos e deploy independente", "expected": "DEEP", "source": "seed"}
|
|
24
|
+
{"id": "forge-complexity-24", "lang": "en", "prompt": "Replace the workflow engine with a new event-sourced core across every department", "expected": "DEEP", "source": "seed"}
|
|
25
|
+
{"id": "forge-complexity-25", "lang": "pt", "prompt": "Implementa encriptação ponta a ponta das mensagens com rotação de chaves e auditoria de segurança", "expected": "DEEP", "source": "seed"}
|
|
26
|
+
{"id": "forge-complexity-26", "lang": "en", "prompt": "Move the whole infrastructure to Kubernetes with zero-downtime deploys and secrets management", "expected": "DEEP", "source": "seed"}
|
|
27
|
+
{"id": "forge-complexity-27", "lang": "pt", "prompt": "Reescreve o motor de permissões com RBAC por organização e migração dos dados de produção", "expected": "DEEP", "source": "seed"}
|
|
28
|
+
{"id": "forge-complexity-28", "lang": "en", "prompt": "Build multi-tenant isolation into the database schema and every API", "expected": "DEEP", "source": "seed"}
|
|
29
|
+
{"id": "forge-complexity-29", "lang": "pt", "prompt": "Melhora o sistema", "expected": "STANDARD", "source": "seed"}
|
|
30
|
+
{"id": "forge-complexity-30", "lang": "en", "prompt": "Make everything better and faster", "expected": "DEEP", "source": "seed"}
|
|
31
|
+
{"id": "forge-complexity-31", "lang": "pt", "prompt": "Cria uma plataforma nova de pagamentos com faturação, subscrições e conformidade PCI", "expected": "DEEP", "source": "seed"}
|
|
32
|
+
{"id": "forge-complexity-32", "lang": "en", "prompt": "Introduce a plugin system with a public API contract and a migration path for existing integrations", "expected": "DEEP", "source": "seed"}
|
|
33
|
+
{"id": "fc-A-01", "lang": "pt", "prompt": "Corrige o acento em 'Configuracoes' no menu lateral", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
34
|
+
{"id": "fc-A-02", "lang": "pt", "prompt": "Atualiza o email de suporte no rodapé do site", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
35
|
+
{"id": "fc-A-03", "lang": "pt", "prompt": "Aumenta o timeout do cliente HTTP de 10 para 30 segundos no ficheiro de configuração", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
36
|
+
{"id": "fc-A-04", "lang": "pt", "prompt": "Adiciona a variável APP_LOCALE ao .env.example", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
37
|
+
{"id": "fc-A-05", "lang": "pt", "prompt": "Traduz para português as mensagens de erro do formulário de registo", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
38
|
+
{"id": "fc-A-06", "lang": "pt", "prompt": "Apaga o ficheiro de script antigo scripts/legacy_import.sh que já ninguém usa", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
39
|
+
{"id": "fc-A-07", "lang": "en", "prompt": "Fix the misspelled 'recieve' in the onboarding email template", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
40
|
+
{"id": "fc-A-08", "lang": "en", "prompt": "Add alt text to the hero image on the homepage", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
41
|
+
{"id": "fc-A-09", "lang": "en", "prompt": "Pin the Node version to 20 in .nvmrc", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
42
|
+
{"id": "fc-A-10", "lang": "en", "prompt": "Rename the Slack channel reference in the incident runbook", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
43
|
+
{"id": "fc-A-11", "lang": "pt", "prompt": "Adiciona um campo NIF opcional ao perfil do cliente com validação do dígito de controlo e testes", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
44
|
+
{"id": "fc-A-12", "lang": "pt", "prompt": "Implementa o reenvio automático de faturas por email quando o pagamento falha, com testes", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
45
|
+
{"id": "fc-A-13", "lang": "pt", "prompt": "Cria uma página de FAQ no site com pesquisa e categorias geridas no CMS", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
46
|
+
{"id": "fc-A-14", "lang": "pt", "prompt": "Adiciona exportação para PDF das propostas comerciais", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
47
|
+
{"id": "fc-A-15", "lang": "pt", "prompt": "Refatora o serviço de notificações para usar filas em vez de envio síncrono", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
48
|
+
{"id": "fc-A-16", "lang": "pt", "prompt": "Adiciona limitação de pedidos de 60 por minuto aos endpoints públicos da API, com resposta 429 e testes", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
49
|
+
{"id": "fc-A-17", "lang": "pt", "prompt": "Cria um widget no dashboard com as vendas diárias por canal", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
50
|
+
{"id": "fc-A-18", "lang": "pt", "prompt": "Integra o Google Analytics 4 no site com consentimento de cookies", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
51
|
+
{"id": "fc-A-19", "lang": "pt", "prompt": "Adiciona upload de avatar ao perfil do utilizador com redimensionamento e limite de 2 MB", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
52
|
+
{"id": "fc-A-20", "lang": "pt", "prompt": "Escreve os testes em falta para o módulo de descontos até chegar a 80% de cobertura", "expected": "SHALLOW", "source": "handwritten-2026-09-25-A"}
|
|
53
|
+
{"id": "fc-A-21", "lang": "en", "prompt": "Add a soft-delete flag to products and hide deleted ones from the storefront", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
54
|
+
{"id": "fc-A-22", "lang": "en", "prompt": "Implement password reset via emailed one-time link with a 30-minute expiry and tests", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
55
|
+
{"id": "fc-A-23", "lang": "en", "prompt": "Add CSV import for contacts with duplicate detection by email", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
56
|
+
{"id": "fc-A-24", "lang": "en", "prompt": "Add OpenTelemetry tracing to the checkout service", "expected": "STANDARD", "source": "handwritten-2026-09-25-A"}
|
|
57
|
+
{"id": "fc-A-25", "lang": "pt", "prompt": "Migra a base de dados de MySQL para PostgreSQL em produção sem perder dados", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
58
|
+
{"id": "fc-A-26", "lang": "pt", "prompt": "Implementa faturação multi-país com IVA por país, notas de crédito e integração com o software de contabilidade", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
59
|
+
{"id": "fc-A-27", "lang": "pt", "prompt": "Substitui o sistema de filas atual por um bus de eventos partilhado por todos os serviços", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
60
|
+
{"id": "fc-A-28", "lang": "pt", "prompt": "Cria uma app móvel nativa para iOS e Android com login, notificações push e pagamentos", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
61
|
+
{"id": "fc-A-29", "lang": "pt", "prompt": "Adiciona conformidade RGPD completa: exportação e eliminação de dados pessoais em todos os serviços e registo de consentimentos", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
62
|
+
{"id": "fc-A-30", "lang": "pt", "prompt": "Reestrutura o monorepo em pacotes independentes com versionamento próprio e pipeline de publicação", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
63
|
+
{"id": "fc-A-31", "lang": "pt", "prompt": "Implementa SSO SAML para clientes empresariais com provisionamento automático de utilizadores", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
64
|
+
{"id": "fc-A-32", "lang": "pt", "prompt": "Faz tudo funcionar melhor", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
65
|
+
{"id": "fc-A-33", "lang": "en", "prompt": "Rotate all production secrets and move them to a managed vault with automatic rotation", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
66
|
+
{"id": "fc-A-34", "lang": "en", "prompt": "Rebuild the search stack on a vector database with hybrid ranking across all content types", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
67
|
+
{"id": "fc-A-35", "lang": "en", "prompt": "Launch the product in three new markets: localisation, local payment methods, pricing and a marketing campaign", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
68
|
+
{"id": "fc-A-36", "lang": "en", "prompt": "Improve the platform", "expected": "DEEP", "source": "handwritten-2026-09-25-A"}
|
|
69
|
+
{"id": "forge-complexity-B-pt-01", "lang": "pt", "prompt": "Corrige a acentuação na mensagem de erro do formulário de checkout", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
70
|
+
{"id": "forge-complexity-B-pt-02", "lang": "pt", "prompt": "Atualiza o número de telefone de apoio no rodapé do site", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
71
|
+
{"id": "forge-complexity-B-pt-03", "lang": "pt", "prompt": "Muda o assunto do email de recuperação de carrinho para 'Esqueceu-se de algo?'", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
72
|
+
{"id": "forge-complexity-B-pt-04", "lang": "pt", "prompt": "Acrescenta a variável de ambiente LOG_LEVEL ao ficheiro .env.example", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
73
|
+
{"id": "forge-complexity-B-pt-05", "lang": "pt", "prompt": "Cria um SOP de uma página para o processo de devoluções da loja", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
74
|
+
{"id": "forge-complexity-B-pt-06", "lang": "pt", "prompt": "Adiciona um campo 'código postal' ao formulário de encomenda com validação do formato português e teste", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
75
|
+
{"id": "forge-complexity-B-pt-07", "lang": "pt", "prompt": "Implementa o envio de uma notificação no Slack quando um cliente cancela a subscrição", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
76
|
+
{"id": "forge-complexity-B-pt-08", "lang": "pt", "prompt": "Cria um relatório semanal de MRR e churn que é enviado por email à equipa de finanças", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
77
|
+
{"id": "forge-complexity-B-pt-09", "lang": "pt", "prompt": "Adiciona cupões de desconto percentuais ao checkout, com data de validade e limite de utilizações", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
78
|
+
{"id": "forge-complexity-B-pt-10", "lang": "pt", "prompt": "Monta um calendário editorial de 4 semanas para Instagram e TikTok com base nos pilares de conteúdo atuais", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
79
|
+
{"id": "forge-complexity-B-pt-11", "lang": "pt", "prompt": "Cria uma landing page para o webinar com formulário de inscrição ligado ao CRM e sequência de 3 emails de lembrete", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
80
|
+
{"id": "forge-complexity-B-pt-12", "lang": "pt", "prompt": "Integra o CRM com o formulário de contacto do site para criar leads automaticamente", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
81
|
+
{"id": "forge-complexity-B-pt-13", "lang": "pt", "prompt": "Adiciona testes de integração ao serviço de faturação sem alterar o comportamento", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
82
|
+
{"id": "forge-complexity-B-pt-14", "lang": "pt", "prompt": "Implementa a sincronização de stock entre a loja online e o marketplace, de hora a hora, com tratamento de conflitos", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
83
|
+
{"id": "forge-complexity-B-pt-15", "lang": "pt", "prompt": "Cria um programa de afiliados com links de tracking, comissões de 20% e painel para os afiliados", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
84
|
+
{"id": "forge-complexity-B-pt-16", "lang": "pt", "prompt": "Reestrutura o funil de vendas inteiro: nova landing, nova oferta, sequência de emails e scripts de chamada para a equipa comercial", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
85
|
+
{"id": "forge-complexity-B-pt-17", "lang": "pt", "prompt": "Migra a loja de WooCommerce para Shopify mantendo URLs, clientes, encomendas históricas e SEO", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
86
|
+
{"id": "forge-complexity-B-pt-18", "lang": "pt", "prompt": "Implementa faturação por uso no SaaS, com medição de eventos, limites por plano e cobrança mensal automática", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
87
|
+
{"id": "forge-complexity-B-pt-19", "lang": "pt", "prompt": "Substitui o sistema de login por passwordless com links mágicos em todas as apps, incluindo migração das contas existentes", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
88
|
+
{"id": "forge-complexity-B-pt-20", "lang": "pt", "prompt": "Implementa conformidade RGPD em toda a plataforma: exportação e eliminação de dados, registo de consentimentos e auditoria", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
89
|
+
{"id": "forge-complexity-B-pt-21", "lang": "pt", "prompt": "Otimiza tudo", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
90
|
+
{"id": "forge-complexity-B-pt-22", "lang": "pt", "prompt": "Faz a loja vender mais", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
91
|
+
{"id": "forge-complexity-B-pt-23", "lang": "pt", "prompt": "Cria uma comunidade paga no Discord integrada com as subscrições do SaaS, com cargos automáticos por plano e remoção quando a subscrição expira", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
92
|
+
{"id": "forge-complexity-B-en-01", "lang": "en", "prompt": "Fix the typo 'recieve' in the onboarding email template", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
93
|
+
{"id": "forge-complexity-B-en-02", "lang": "en", "prompt": "Change the default page size of the products API from 20 to 50", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
94
|
+
{"id": "forge-complexity-B-en-03", "lang": "en", "prompt": "Add an 'export to PDF' button to the invoice detail page with a feature test", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
95
|
+
{"id": "forge-complexity-B-en-04", "lang": "en", "prompt": "Add a churn-risk flag to the customer list based on 30 days without login", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
96
|
+
{"id": "forge-complexity-B-en-05", "lang": "en", "prompt": "Write a lead-scoring rule set in the CRM for inbound demo requests", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
97
|
+
{"id": "forge-complexity-B-en-06", "lang": "en", "prompt": "Build a referral program with unique codes, double-sided rewards and fraud checks", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
98
|
+
{"id": "forge-complexity-B-en-07", "lang": "en", "prompt": "Replace the email provider across all transactional and marketing flows without downtime", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
99
|
+
{"id": "forge-complexity-B-en-08", "lang": "en", "prompt": "Rebuild the mobile app in React Native and retire the two native codebases", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
100
|
+
{"id": "forge-complexity-B-en-09", "lang": "en", "prompt": "Add SSO with SAML for enterprise customers, including per-organisation configuration and audit logs", "expected": "DEEP", "source": "handwritten-2026-09-25-B"}
|
|
101
|
+
{"id": "forge-complexity-B-en-10", "lang": "en", "prompt": "Make the onboarding better", "expected": "STANDARD", "source": "handwritten-2026-09-25-B"}
|
|
102
|
+
{"id": "forge-complexity-B-en-11", "lang": "en", "prompt": "Sort the team list alphabetically in the admin sidebar", "expected": "SHALLOW", "source": "handwritten-2026-09-25-B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{"id": "forge-departments-01", "lang": "pt", "prompt": "Planeia o lançamento do novo plano Pro: página de preços, campanha de email e alterações no checkout", "prior": [], "expected": ["landing", "marketing", "dev"]}
|
|
2
|
+
{"id": "forge-departments-02", "lang": "en", "prompt": "Plan the migration of the billing service to Stripe with zero downtime", "prior": [], "expected": ["dev"]}
|
|
3
|
+
{"id": "forge-departments-03", "lang": "pt", "prompt": "Cria a identidade visual da marca e o design system da aplicação", "prior": [], "expected": ["brand"]}
|
|
4
|
+
{"id": "forge-departments-04", "lang": "en", "prompt": "Build a content engine: weekly YouTube videos repurposed into shorts and a newsletter", "prior": [], "expected": ["content"]}
|
|
5
|
+
{"id": "forge-departments-05", "lang": "pt", "prompt": "Monta o funil de vendas com landing page, oferta e sequência de follow-up comercial", "prior": [], "expected": ["landing", "sales"]}
|
|
6
|
+
{"id": "forge-departments-06", "lang": "en", "prompt": "Design the onboarding flow and churn dashboard for our SaaS", "prior": [], "expected": ["saas"]}
|
|
7
|
+
{"id": "forge-departments-07", "lang": "pt", "prompt": "Reestrutura a equipa de suporte e define os papéis e a compensação", "prior": [], "expected": ["org"]}
|
|
8
|
+
{"id": "forge-departments-08", "lang": "en", "prompt": "Automate invoice processing between the CRM and accounting with n8n", "prior": [], "expected": ["ops"]}
|
|
9
|
+
{"id": "forge-departments-09", "lang": "pt", "prompt": "Prepara o modelo financeiro e o orçamento para a ronda seed", "prior": [], "expected": ["finance"]}
|
|
10
|
+
{"id": "forge-departments-10", "lang": "en", "prompt": "Launch a Discord community for our users with onboarding and gamification", "prior": [], "expected": ["community"]}
|
|
11
|
+
{"id": "forge-departments-11", "lang": "pt", "prompt": "Analisa a concorrência e define o posicionamento para entrar no mercado espanhol", "prior": [], "expected": ["strategy"]}
|
|
12
|
+
{"id": "forge-departments-12", "lang": "en", "prompt": "Optimise the Shopify store: product pages, checkout and cart recovery emails", "prior": [], "expected": ["ecom"]}
|
|
13
|
+
{"id": "forge-departments-13", "lang": "pt", "prompt": "Organiza a base de conhecimento no Obsidian e cria mapas de conteúdo", "prior": [], "expected": ["kb"]}
|
|
14
|
+
{"id": "forge-departments-14", "lang": "en", "prompt": "Plan the next two sprints and groom the backlog for the mobile app", "prior": [], "expected": ["pm"]}
|
|
15
|
+
{"id": "forge-departments-15", "lang": "pt", "prompt": "Prepara as avaliações de desempenho e um plano de feedback para a equipa", "prior": [], "expected": ["lead"]}
|
|
16
|
+
{"id": "forge-departments-16", "lang": "en", "prompt": "Refactor the auth module and add integration tests", "prior": [], "expected": ["dev"]}
|
|
17
|
+
{"id": "forge-departments-17", "lang": "pt", "prompt": "Implementa a API de encomendas e o painel de administração em Vue", "prior": [], "expected": ["dev"]}
|
|
18
|
+
{"id": "forge-departments-18", "lang": "en", "prompt": "Rebrand the product: new logo, palette and a landing page announcing it", "prior": [], "expected": ["brand", "landing"]}
|
|
19
|
+
{"id": "forge-departments-19", "lang": "pt", "prompt": "Lança o curso online: página de vendas, emails de lançamento e grupo privado de alunos", "prior": [], "expected": ["landing", "marketing", "community"]}
|
|
20
|
+
{"id": "forge-departments-20", "lang": "en", "prompt": "Set up SEO and a content calendar for the blog", "prior": [], "expected": ["marketing"]}
|
|
21
|
+
{"id": "forge-departments-21", "lang": "pt", "prompt": "Desenha a estratégia de preços do SaaS e o impacto no MRR", "prior": [], "expected": ["saas", "finance"]}
|
|
22
|
+
{"id": "forge-departments-22", "lang": "en", "prompt": "Build a pipeline dashboard for the sales team and clean up CRM data", "prior": [], "expected": ["sales", "ops"]}
|
|
23
|
+
{"id": "forge-departments-23", "lang": "pt", "prompt": "Cria vídeos curtos para o TikTok e o Instagram sobre o produto", "prior": [], "expected": ["content"]}
|
|
24
|
+
{"id": "forge-departments-24", "lang": "en", "prompt": "Deploy the app to Kubernetes with CI/CD and monitoring", "prior": [], "expected": ["dev"]}
|
|
25
|
+
{"id": "forge-departments-25", "lang": "pt", "prompt": "Define os OKRs do trimestre para todos os departamentos", "prior": [], "expected": ["org"]}
|
|
26
|
+
{"id": "forge-departments-26", "lang": "en", "prompt": "Research our customers with interviews and turn it into positioning and messaging", "prior": [], "expected": ["marketing", "strategy"]}
|
|
27
|
+
{"id": "forge-departments-27", "lang": "pt", "prompt": "Monta a loja online com catálogo, pagamentos e integração com o armazém", "prior": [], "expected": ["ecom", "dev"]}
|
|
28
|
+
{"id": "forge-departments-28", "lang": "en", "prompt": "Write the SOPs for client onboarding and automate the welcome emails", "prior": [], "expected": ["ops"]}
|
|
29
|
+
{"id": "forge-departments-29", "lang": "pt", "prompt": "Contrata dois engenheiros: plano de recrutamento, entrevistas e onboarding", "prior": [], "expected": ["lead", "org"]}
|
|
30
|
+
{"id": "forge-departments-30", "lang": "en", "prompt": "Build a micro-SaaS MVP with a landing page and Stripe subscriptions", "prior": [], "expected": ["saas", "dev", "landing"]}
|
|
31
|
+
{"id": "forge-departments-31", "lang": "pt", "prompt": "Faz a análise de unit economics e o cash flow dos próximos 12 meses", "prior": [], "expected": ["finance"]}
|
|
32
|
+
{"id": "forge-departments-32", "lang": "en", "prompt": "Prepare the product roadmap and stakeholder map for the platform", "prior": [], "expected": ["pm"]}
|
|
33
|
+
{"id": "forge-departments-33", "lang": "pt", "prompt": "Corrige os bugs do formulário de registo e melhora a validação", "prior": [], "expected": ["dev"]}
|
|
34
|
+
{"id": "forge-departments-34", "lang": "en", "prompt": "Grow the newsletter with a lead magnet and a referral loop", "prior": [], "expected": ["marketing"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{"id": "ho-ls-A-01", "lang": "pt", "prompt": "A partir de agora, nunca faças commit sem me perguntar primeiro. Isto é inegociável.", "expected": "explicit", "source": "handwritten-2026-09-25-A"}
|
|
2
|
+
{"id": "ho-ls-A-02", "lang": "pt", "prompt": "Prefiro que os relatórios venham em tabelas em vez de listas longas.", "expected": "implicit", "source": "handwritten-2026-09-25-A"}
|
|
3
|
+
{"id": "ho-ls-A-03", "lang": "pt", "prompt": "Obrigado, está ótimo.", "expected": "none", "source": "handwritten-2026-09-25-A"}
|
|
4
|
+
{"id": "ho-ls-A-04", "lang": "pt", "prompt": "Neste ficheiro usa tabs em vez de espaços.", "expected": "none", "source": "handwritten-2026-09-25-A"}
|
|
5
|
+
{"id": "ho-ls-A-05", "lang": "pt", "prompt": "Guarda isto: nos projetos Laravel usamos sempre Form Requests para validação.", "expected": "explicit", "source": "handwritten-2026-09-25-A"}
|
|
6
|
+
{"id": "ho-ls-A-06", "lang": "en", "prompt": "Don't assume the database is Postgres; check the config first.", "expected": "implicit", "source": "handwritten-2026-09-25-A"}
|
|
7
|
+
{"id": "ho-ls-A-07", "lang": "pt", "prompt": "Podes voltar a correr os testes?", "expected": "none", "source": "handwritten-2026-09-25-A"}
|
|
8
|
+
{"id": "ho-ls-A-08", "lang": "en", "prompt": "Going forward, always write commit messages in English, even when we talk in Portuguese.", "expected": "explicit", "source": "handwritten-2026-09-25-A"}
|
|
9
|
+
{"id": "ho-ls-A-09", "lang": "en", "prompt": "That headline is too long, cut it to eight words.", "expected": "none", "source": "handwritten-2026-09-25-A"}
|
|
10
|
+
{"id": "ho-ls-A-10", "lang": "pt", "prompt": "Em vez de npm usa bun neste repositório.", "expected": "implicit", "source": "handwritten-2026-09-25-A"}
|
|
11
|
+
{"id": "learning-signal-B-04", "lang": "pt", "prompt": "Não assumas que o cliente usa Shopify, pergunta sempre primeiro qual é a plataforma.", "expected": "explicit", "source": "handwritten-2026-09-25-B"}
|
|
12
|
+
{"id": "learning-signal-B-05", "lang": "pt", "prompt": "Neste email, tira o último parágrafo.", "expected": "none", "source": "handwritten-2026-09-25-B"}
|
|
13
|
+
{"id": "learning-signal-B-06", "lang": "pt", "prompt": "Em vez de Mailchimp usa o Brevo nas próximas campanhas.", "expected": "implicit", "source": "handwritten-2026-09-25-B"}
|
|
14
|
+
{"id": "learning-signal-B-07", "lang": "en", "prompt": "Going forward, every landing page must pass the accessibility audit before review. Save this.", "expected": "explicit", "source": "handwritten-2026-09-25-B"}
|
|
15
|
+
{"id": "learning-signal-B-08", "lang": "en", "prompt": "I'd rather you keep commit messages under 50 characters.", "expected": "implicit", "source": "handwritten-2026-09-25-B"}
|
|
16
|
+
{"id": "learning-signal-B-09", "lang": "en", "prompt": "What's the status of the migration?", "expected": "none", "source": "handwritten-2026-09-25-B"}
|
|
17
|
+
{"id": "learning-signal-B-10", "lang": "en", "prompt": "Don't pad the answers with summaries at the end, I read the whole thing.", "expected": "implicit", "source": "handwritten-2026-09-25-B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{"id": "ho-qg-A-01", "lang": "en", "prompt": "diff --git a/core/util/slug.py b/core/util/slug.py\n--- a/core/util/slug.py\n+++ b/core/util/slug.py\n@@ -1,3 +1,3 @@\n def slugify(text: str) -> str:\n- return text.lower().replace(' ', '-')\n+ return re.sub(r'[^a-z0-9]+', '-', text.lower()).strip('-')\n", "expected": ["rejected", "tests"], "source": "handwritten-2026-09-25-A"}
|
|
2
|
+
{"id": "ho-qg-A-02", "lang": "en", "prompt": "diff --git a/app/services/mailer.py b/app/services/mailer.py\n--- a/app/services/mailer.py\n+++ b/app/services/mailer.py\n@@ -1,4 +1,5 @@\n+SMTP_PASSWORD = \"changeme-prod\"\n def send(to, body):\n- client = smtp_client()\n+ client = smtp_client(password=SMTP_PASSWORD)\n client.send(to, body)\n", "expected": ["rejected", "security"], "source": "handwritten-2026-09-25-A"}
|
|
3
|
+
{"id": "ho-qg-A-03", "lang": "pt", "prompt": "diff --git a/docs/guia.md b/docs/guia.md\n--- a/docs/guia.md\n+++ b/docs/guia.md\n@@ -1,2 +1,2 @@\n-Para instalar corra o comando abaixo.\n+Para instalar, corra o comando abaixo e aguarde a confirmaçao.\n", "expected": ["rejected", "spellcheck"], "source": "handwritten-2026-09-25-A"}
|
|
4
|
+
{"id": "ho-qg-A-04", "lang": "pt", "prompt": "diff --git a/core/pricing/discount.py b/core/pricing/discount.py\n--- a/core/pricing/discount.py\n+++ b/core/pricing/discount.py\n@@ -1,3 +1,4 @@\n def apply(price: Decimal, pct: Decimal) -> Decimal:\n- return price * pct\n+ \"\"\"Aplica o desconto percentual.\"\"\"\n+ return price * (1 - pct / 100)\ndiff --git a/tests/test_discount.py b/tests/test_discount.py\n--- a/tests/test_discount.py\n+++ b/tests/test_discount.py\n@@ -1,2 +1,3 @@\n def test_apply():\n- assert apply(Decimal(100), Decimal('0.1')) == Decimal(10)\n+ assert apply(Decimal(100), Decimal(10)) == Decimal(90)\n", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-A"}
|
|
5
|
+
{"id": "ho-qg-A-05", "lang": "en", "prompt": "diff --git a/core/api/orders.py b/core/api/orders.py\n--- a/core/api/orders.py\n+++ b/core/api/orders.py\n@@ -1,5 +1,5 @@\n-import json\n import os\n def list_orders(status):\n- q = \"SELECT * FROM orders WHERE status = %s\"\n- return db.execute(q, (status,))\n+ q = f\"SELECT * FROM orders WHERE status = '{status}'\"\n+ return db.execute(q)\n", "expected": ["rejected", "security"], "source": "handwritten-2026-09-25-A"}
|
|
6
|
+
{"id": "ho-qg-A-06", "lang": "en", "prompt": "diff --git a/tests/test_sync.py b/tests/test_sync.py\n--- a/tests/test_sync.py\n+++ b/tests/test_sync.py\n@@ -1,4 +1,5 @@\n+@pytest.mark.skip(reason=\"flaky\")\n def test_sync_retries_three_times():\n ...\n", "expected": ["rejected", "tests"], "source": "handwritten-2026-09-25-A"}
|
|
7
|
+
{"id": "ho-qg-A-07", "lang": "en", "prompt": "diff --git a/core/cli/report.py b/core/cli/report.py\n--- a/core/cli/report.py\n+++ b/core/cli/report.py\n@@ -1,4 +1,5 @@\n import sys\n+import os\n def main():\n print(render())\n", "expected": ["rejected", "lint"], "source": "handwritten-2026-09-25-A"}
|
|
8
|
+
{"id": "ho-qg-A-08", "lang": "pt", "prompt": "diff --git a/README.md b/README.md\n--- a/README.md\n+++ b/README.md\n@@ -3,3 +3,4 @@\n ## Requisitos\n - Python 3.12\n+- Node 20 ou superior\n", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-A"}
|
|
9
|
+
{"id": "ho-qg-A-09", "lang": "en", "prompt": "diff --git a/core/queue/worker.py b/core/queue/worker.py\n--- a/core/queue/worker.py\n+++ b/core/queue/worker.py\n@@ -10,6 +10,9 @@ def run(job):\n try:\n job.execute()\n- except TimeoutError:\n- job.retry()\n+ except Exception:\n+ pass\n", "expected": ["rejected", "diff-review"], "source": "handwritten-2026-09-25-A"}
|
|
10
|
+
{"id": "ho-qg-A-10", "lang": "pt", "prompt": "diff --git a/app/Http/Requests/StoreClientRequest.php b/app/Http/Requests/StoreClientRequest.php\n--- a/app/Http/Requests/StoreClientRequest.php\n+++ b/app/Http/Requests/StoreClientRequest.php\n@@ -8,6 +8,7 @@ public function rules(): array\n return [\n 'name' => ['required', 'string', 'max:120'],\n+ 'nif' => ['nullable', 'digits:9'],\n ];\ndiff --git a/tests/Feature/StoreClientTest.php b/tests/Feature/StoreClientTest.php\n--- a/tests/Feature/StoreClientTest.php\n+++ b/tests/Feature/StoreClientTest.php\n@@ -20,0 +21,6 @@\n+it('rejeita um NIF com 8 dígitos', function () {\n+ $this->postJson('/api/clients', ['name' => 'Ana', 'nif' => '12345678'])\n+ ->assertUnprocessable()\n+ ->assertJsonValidationErrors('nif');\n+});\n", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-A"}
|
|
11
|
+
{"id": "qg-prescreen-B-01", "lang": "pt", "prompt": "diff --git a/app/services/shipping.py b/app/services/shipping.py\n--- a/app/services/shipping.py\n+++ b/app/services/shipping.py\n@@ -10,6 +10,9 @@ def shipping_cost(order):\n- return BASE_RATE\n+ if order.total >= FREE_SHIPPING_THRESHOLD:\n+ return Decimal(0)\n+ return BASE_RATE", "expected": ["rejected", "tests"], "source": "handwritten-2026-09-25-B"}
|
|
12
|
+
{"id": "qg-prescreen-B-02", "lang": "pt", "prompt": "diff --git a/app/locale/pt.json b/app/locale/pt.json\n--- a/app/locale/pt.json\n+++ b/app/locale/pt.json\n@@ -3,3 +3,4 @@\n \"order.created\": \"Encomenda criada\",\n+ \"order.confirmed\": \"Encomenda confirmada com sucesso, obrigado pela sua preferencia\",\n }", "expected": ["rejected", "spellcheck"], "source": "handwritten-2026-09-25-B"}
|
|
13
|
+
{"id": "qg-prescreen-B-03", "lang": "pt", "prompt": "diff --git a/config/database.py b/config/database.py\n--- a/config/database.py\n+++ b/config/database.py\n@@ -1,3 +1,3 @@\n DB_USER = \"app\"\n-DB_PASSWORD = os.environ[\"DB_PASSWORD\"]\n+DB_PASSWORD = \"changeme\"\n DB_HOST = os.environ.get(\"DB_HOST\", \"localhost\")", "expected": ["rejected", "security"], "source": "handwritten-2026-09-25-B"}
|
|
14
|
+
{"id": "qg-prescreen-B-04", "lang": "pt", "prompt": "diff --git a/app/utils/slug.py b/app/utils/slug.py\n--- a/app/utils/slug.py\n+++ b/app/utils/slug.py\n@@ -1,4 +1,5 @@\n def slugify(text: str) -> str:\n- return text.lower().replace(\" \", \"-\")\n+ \"\"\"Minúsculas, sem acentos, espaços como hífenes.\"\"\"\n+ return unidecode(text).lower().strip().replace(\" \", \"-\")\ndiff --git a/tests/test_slug.py b/tests/test_slug.py\n--- a/tests/test_slug.py\n+++ b/tests/test_slug.py\n@@ -4,3 +4,6 @@ def test_slugify_basic():\n assert slugify(\"Olá Mundo\") == \"ola-mundo\"\n+\n+def test_slugify_remove_espacos_nas_pontas():\n+ assert slugify(\" Promoção de Verão \") == \"promocao-de-verao\"", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-B"}
|
|
15
|
+
{"id": "qg-prescreen-B-05", "lang": "pt", "prompt": "diff --git a/app/reports/export.py b/app/reports/export.py\n--- a/app/reports/export.py\n+++ b/app/reports/export.py\n@@ -1,4 +1,6 @@\n import csv\n+import json\n+import sys\n from io import StringIO\n \n def to_csv(rows):", "expected": ["rejected", "lint"], "source": "handwritten-2026-09-25-B"}
|
|
16
|
+
{"id": "qg-prescreen-B-06", "lang": "pt", "prompt": "diff --git a/app/sync/stock.py b/app/sync/stock.py\n--- a/app/sync/stock.py\n+++ b/app/sync/stock.py\n@@ -20,5 +20,8 @@ def push_stock(sku, qty):\n- client.update(sku, qty)\n+ try:\n+ client.update(sku, qty)\n+ except Exception:\n+ pass", "expected": ["rejected", "diff-review"], "source": "handwritten-2026-09-25-B"}
|
|
17
|
+
{"id": "qg-prescreen-B-07", "lang": "en", "prompt": "diff --git a/tests/test_invoices.py b/tests/test_invoices.py\n--- a/tests/test_invoices.py\n+++ b/tests/test_invoices.py\n@@ -12,6 +12,7 @@ from app.invoices import issue\n \n+@pytest.mark.skip(reason=\"flaky on CI\")\n def test_issue_invoice_applies_vat():\n invoice = issue(order_fixture())\n assert invoice.vat == Decimal(\"23.00\")", "expected": ["rejected", "tests"], "source": "handwritten-2026-09-25-B"}
|
|
18
|
+
{"id": "qg-prescreen-B-08", "lang": "en", "prompt": "diff --git a/docs/setup.md b/docs/setup.md\n--- a/docs/setup.md\n+++ b/docs/setup.md\n@@ -8,4 +8,4 @@ ## Requirements\n-- Python 3.10 or newer\n+- Python 3.12 or newer\n - A running PostgreSQL 16 instance", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-B"}
|
|
19
|
+
{"id": "qg-prescreen-B-09", "lang": "en", "prompt": "diff --git a/app/repos/customers.py b/app/repos/customers.py\n--- a/app/repos/customers.py\n+++ b/app/repos/customers.py\n@@ -5,4 +5,4 @@ def find_by_email(conn, email):\n- return conn.execute(\"SELECT * FROM customers WHERE email = %s\", (email,)).fetchone()\n+ return conn.execute(f\"SELECT * FROM customers WHERE email = '{email}'\").fetchone()", "expected": ["rejected", "security"], "source": "handwritten-2026-09-25-B"}
|
|
20
|
+
{"id": "qg-prescreen-B-10", "lang": "en", "prompt": "diff --git a/app/pricing/discount.py b/app/pricing/discount.py\n--- a/app/pricing/discount.py\n+++ b/app/pricing/discount.py\n@@ -1,8 +1,6 @@\n def apply_discount(total: Decimal, pct: int) -> Decimal:\n- if pct < 0 or pct > 100:\n- raise ValueError(\"pct out of range\")\n- discounted = total - (total * pct / 100)\n- return discounted\n+ _check_pct(pct)\n+ return total * (100 - pct) / 100\ndiff --git a/tests/test_discount.py b/tests/test_discount.py\n--- a/tests/test_discount.py\n+++ b/tests/test_discount.py\n@@ -6,2 +6,6 @@ def test_apply_discount_ten_percent():\n assert apply_discount(Decimal(\"50\"), 10) == Decimal(\"45\")\n+\n+def test_apply_discount_rejects_over_100():\n+ with pytest.raises(ValueError):\n+ apply_discount(Decimal(\"50\"), 101)", "expected": ["approved", "none"], "source": "handwritten-2026-09-25-B"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{"id": "ho-sl-A-01", "lang": "pt", "prompt": "No mundo acelerado de hoje, a produtividade é mais importante do que nunca. Neste guia, vamos explorar juntos as melhores estratégias. Rapidez. Foco. Resultados. Prepare-se para transformar a sua rotina!", "expected": [2, 2, 3, 1, 2], "source": "handwritten-2026-09-25-A"}
|
|
2
|
+
{"id": "ho-sl-A-02", "lang": "pt", "prompt": "O relatório de março fecha com receita de 42 mil euros, menos 6% do que fevereiro. A queda vem quase toda do plano Base: perdemos 31 clientes e ganhámos 12. Proponho rever o onboarding desse plano antes de mexer no preço.", "expected": [9, 8, 9, 9, 9], "source": "handwritten-2026-09-25-A"}
|
|
3
|
+
{"id": "ho-sl-A-03", "lang": "en", "prompt": "In today's fast-paced digital landscape, leveraging cutting-edge solutions is crucial. Our innovative platform empowers teams to unlock their full potential. It's not just a tool — it's a game-changer.", "expected": [2, 3, 3, 1, 2], "source": "handwritten-2026-09-25-A"}
|
|
4
|
+
{"id": "ho-sl-A-04", "lang": "en", "prompt": "The migration broke two things: cron jobs that assumed UTC, and one report that summed nulls as zero. Both are fixed in the branch. I'd hold the release until someone re-runs the month-end report against staging.", "expected": [9, 8, 9, 9, 9], "source": "handwritten-2026-09-25-A"}
|
|
5
|
+
{"id": "ho-sl-A-05", "lang": "pt", "prompt": "É importante salientar que, de certa forma, a comunicação é fundamental. Em suma, podemos dizer que comunicar bem é, sem dúvida, essencial para o sucesso. Ou seja, comunicar é importante.", "expected": [2, 3, 2, 3, 1], "source": "handwritten-2026-09-25-A"}
|
|
6
|
+
{"id": "ho-sl-A-06", "lang": "pt", "prompt": "Mudámos o fornecedor de email na terça. As taxas de entrega subiram de 91% para 98% e as queixas de spam caíram para metade. Falta migrar os templates antigos, o que fica para a próxima sprint.", "expected": [9, 7, 9, 8, 9], "source": "handwritten-2026-09-25-A"}
|
|
7
|
+
{"id": "ho-sl-A-07", "lang": "en", "prompt": "Let's dive in! First, we'll look at the problem. Then, we'll explore the solution. Finally, we'll wrap up with key takeaways. Ready? Let's go!", "expected": [1, 2, 3, 2, 1], "source": "handwritten-2026-09-25-A"}
|
|
8
|
+
{"id": "ho-sl-A-08", "lang": "en", "prompt": "Pricing is the lever most founders touch last and should touch first. We raised the Pro plan by 20% in May; churn didn't move, and new sign-ups dipped for two weeks before recovering. The lesson isn't that price doesn't matter. It's that we were underpriced.", "expected": [8, 8, 8, 8, 8], "source": "handwritten-2026-09-25-A"}
|
|
9
|
+
{"id": "ho-sl-A-09", "lang": "pt", "prompt": "Este artigo é imperdível! Vai descobrir segredos incríveis que ninguém lhe conta. Leia até ao fim, porque o último ponto vai surpreendê-lo. Não perca esta oportunidade única!", "expected": [2, 3, 1, 1, 1], "source": "handwritten-2026-09-25-A"}
|
|
10
|
+
{"id": "ho-sl-A-10", "lang": "pt", "prompt": "A função calcula o IVA sobre o subtotal e arredonda ao cêntimo no fim, não linha a linha. Isto evita diferenças de um cêntimo nas faturas com muitas linhas, que eram o motivo de metade dos pedidos de suporte em agosto.", "expected": [9, 8, 9, 9, 9], "source": "handwritten-2026-09-25-A"}
|
|
11
|
+
{"id": "slop-score-B-01", "lang": "pt", "prompt": "No mundo acelerado de hoje, a inovação é mais importante do que nunca. Vamos explorar juntos como a inteligência artificial pode transformar o seu negócio. É rápido. É simples. É revolucionário. Prepare-se para uma nova era.", "expected": [2, 2, 3, 2, 2], "source": "handwritten-2026-09-25-B"}
|
|
12
|
+
{"id": "slop-score-B-02", "lang": "pt", "prompt": "A versão 2.4 corrige o cálculo do IVA nas faturas com desconto. Até agora o desconto era aplicado depois do imposto, o que inflacionava o total em cerca de 1 %. Quem emitiu faturas com desconto entre 3 e 17 de março deve reemiti-las; o painel marca-as a amarelo.", "expected": [9, 8, 9, 8, 9], "source": "handwritten-2026-09-25-B"}
|
|
13
|
+
{"id": "slop-score-B-03", "lang": "pt", "prompt": "Neste guia vamos ver como configurar a sincronização de stock. Primeiro, é importante perceber o que é a sincronização. Basicamente, a sincronização garante que o stock da loja e do armazém coincide. Depois ligamos as duas contas e escolhemos a frequência, que pode ser de hora a hora ou diária.", "expected": [4, 5, 5, 5, 5], "source": "handwritten-2026-09-25-B"}
|
|
14
|
+
{"id": "slop-score-B-04", "lang": "pt", "prompt": "Para exportar os clientes, clique em Exportar. O botão Exportar fica no canto superior direito. Ao clicar em Exportar, o ficheiro é descarregado. Lembre-se: é muito importante clicar em Exportar para obter o ficheiro. Em resumo, basta clicar em Exportar.", "expected": [6, 3, 2, 5, 2], "source": "handwritten-2026-09-25-B"}
|
|
15
|
+
{"id": "slop-score-B-05", "lang": "pt", "prompt": "O caderno de linho tem 192 páginas pontilhadas, papel de 120 g que não deixa passar a tinta da caneta de aparo e uma lombada cosida que abre plano. Cabe no bolso interior de um casaco. Se o papel não aguentar a sua caneta, devolvemos o dinheiro.", "expected": [8, 8, 8, 8, 8], "source": "handwritten-2026-09-25-B"}
|
|
16
|
+
{"id": "slop-score-B-06", "lang": "pt", "prompt": "Descubra a solução definitiva que vai revolucionar a sua forma de trabalhar! A nossa plataforma inovadora e disruptiva oferece uma experiência única, intuitiva e poderosa. Junte-se a milhares de profissionais satisfeitos e desbloqueie todo o seu potencial hoje mesmo!", "expected": [3, 3, 4, 1, 2], "source": "handwritten-2026-09-25-B"}
|
|
17
|
+
{"id": "slop-score-B-07", "lang": "en", "prompt": "In today's fast-paced digital landscape, businesses must adapt or be left behind. Let's dive into the game-changing world of automation. It's powerful. It's seamless. It's the future. Buckle up for a transformative journey!", "expected": [1, 2, 3, 1, 2], "source": "handwritten-2026-09-25-B"}
|
|
18
|
+
{"id": "slop-score-B-08", "lang": "en", "prompt": "The outage lasted 41 minutes. A config change raised the connection pool limit above what the database allowed, so new connections were refused. We rolled it back at 10:12 and added a check that compares the two values before any deploy.", "expected": [9, 8, 9, 9, 9], "source": "handwritten-2026-09-25-B"}
|
|
19
|
+
{"id": "slop-score-B-09", "lang": "en", "prompt": "Onboarding is a crucial part of the customer journey. It is important to make a great first impression. There are many things to consider when designing onboarding. In this post we will look at a few key ideas that can help you improve it.", "expected": [3, 4, 4, 4, 3], "source": "handwritten-2026-09-25-B"}
|
|
20
|
+
{"id": "slop-score-B-10", "lang": "en", "prompt": "Set the webhook URL under Settings, then send a test event; the log shows the response code within a few seconds. To summarise: set the URL, send a test event, and check the log. In other words, the three steps are setting, testing and checking.", "expected": [7, 5, 3, 6, 3], "source": "handwritten-2026-09-25-B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{"id": "learning-signal-01", "lang": "en", "prompt": "The deployment finished at 14:32 UTC.", "expected": "none"}
|
|
2
|
+
{"id": "learning-signal-02", "lang": "en", "prompt": "What time is the meeting?", "expected": "none"}
|
|
3
|
+
{"id": "learning-signal-03", "lang": "pt", "prompt": "guarda isto como regra permanente: nunca faças push sem os testes verdes", "expected": "explicit"}
|
|
4
|
+
{"id": "learning-signal-04", "lang": "en", "prompt": "save this as a permanent rule going forward: every release runs the preflight first", "expected": "explicit"}
|
|
5
|
+
{"id": "learning-signal-05", "lang": "pt", "prompt": "faz sempre isto antes de continuar com qualquer trabalho substantivo", "expected": "explicit"}
|
|
6
|
+
{"id": "learning-signal-06", "lang": "pt", "prompt": "nunca aceites a primeira resposta sem crítica adicional", "expected": "explicit"}
|
|
7
|
+
{"id": "learning-signal-07", "lang": "pt", "prompt": "sem exceções, todas as entregas têm de passar pelo Quality Gate", "expected": "explicit"}
|
|
8
|
+
{"id": "learning-signal-08", "lang": "en", "prompt": "always cite reference companies when making recommendations", "expected": "explicit"}
|
|
9
|
+
{"id": "learning-signal-09", "lang": "en", "prompt": "this is NON-NEGOTIABLE for all future deployments", "expected": "explicit"}
|
|
10
|
+
{"id": "learning-signal-10", "lang": "pt", "prompt": "para de assumir que eu sei o contexto do projeto", "expected": "implicit"}
|
|
11
|
+
{"id": "learning-signal-11", "lang": "pt", "prompt": "deixa de pedir confirmação para cada pequena alteração", "expected": "implicit"}
|
|
12
|
+
{"id": "learning-signal-12", "lang": "en", "prompt": "stop doing the early-return pattern in those views", "expected": "implicit"}
|
|
13
|
+
{"id": "learning-signal-13", "lang": "en", "prompt": "don't assume the test data is fresh between runs", "expected": "implicit"}
|
|
14
|
+
{"id": "learning-signal-14", "lang": "pt", "prompt": "eu prefiro que sejas mais conciso nas respostas longas", "expected": "implicit"}
|
|
15
|
+
{"id": "learning-signal-15", "lang": "en", "prompt": "I prefer markdown tables when the data is structured", "expected": "implicit"}
|
|
16
|
+
{"id": "learning-signal-16", "lang": "pt", "prompt": "o que eu quero é ver o output do Playwright sem flakiness", "expected": "implicit"}
|
|
17
|
+
{"id": "learning-signal-17", "lang": "pt", "prompt": "Obrigado, ficou ótimo!", "expected": "none"}
|
|
18
|
+
{"id": "learning-signal-18", "lang": "pt", "prompt": "Corre os testes outra vez, por favor.", "expected": "none"}
|
|
19
|
+
{"id": "learning-signal-19", "lang": "pt", "prompt": "Nesta tarefa usa o ficheiro de exemplo que está na pasta docs.", "expected": "none"}
|
|
20
|
+
{"id": "learning-signal-20", "lang": "en", "prompt": "For this PR only, skip the changelog entry.", "expected": "none"}
|
|
21
|
+
{"id": "learning-signal-21", "lang": "pt", "prompt": "Quanto tempo demorou o build?", "expected": "none"}
|
|
22
|
+
{"id": "learning-signal-22", "lang": "pt", "prompt": "Isto está errado, o botão devia ser azul.", "expected": "none"}
|
|
23
|
+
{"id": "learning-signal-23", "lang": "pt", "prompt": "A partir de agora escreve sempre em português europeu, nunca em brasileiro, em todos os projetos.", "expected": "explicit"}
|
|
24
|
+
{"id": "learning-signal-24", "lang": "pt", "prompt": "Não gosto de respostas com muitos emojis; prefiro texto limpo.", "expected": "implicit"}
|
|
25
|
+
{"id": "learning-signal-25", "lang": "en", "prompt": "Going forward, no compromise on the security audit before any merge.", "expected": "explicit"}
|
|
26
|
+
{"id": "learning-signal-26", "lang": "pt", "prompt": "em vez de Inertia v2 usa sempre a v3 com a nova API nos projetos Laravel", "expected": "explicit"}
|
|
27
|
+
{"id": "learning-signal-27", "lang": "pt", "prompt": "Prefiro que me mostres o diff antes de gravares ficheiros grandes.", "expected": "implicit"}
|
|
28
|
+
{"id": "learning-signal-28", "lang": "en", "prompt": "Please avoid long preambles in your answers, get to the point.", "expected": "implicit"}
|
|
29
|
+
{"id": "learning-signal-29", "lang": "pt", "prompt": "Muda o título desta página para 'Preços'.", "expected": "none"}
|
|
30
|
+
{"id": "learning-signal-30", "lang": "pt", "prompt": "isto é não negociável: nunca uses git stash neste repositório, já perdemos trabalho três vezes por causa disso", "expected": "explicit"}
|
|
31
|
+
{"id": "learning-signal-31", "lang": "en", "prompt": "Nice work on the migration.", "expected": "none"}
|
|
32
|
+
{"id": "learning-signal-32", "lang": "pt", "prompt": "Evita usar tabelas quando a resposta tem só dois itens, fica pesado.", "expected": "implicit"}
|
|
33
|
+
{"id": "learning-signal-33", "lang": "pt", "prompt": "Hoje não vou precisar do relatório, podes deixar para amanhã.", "expected": "none"}
|
|
34
|
+
{"id": "learning-signal-34", "lang": "en", "prompt": "I like it when you list the commands you ran with their exit codes.", "expected": "implicit"}
|
|
35
|
+
{"id": "learning-signal-35", "lang": "pt", "prompt": "conitnua ja tens tudo disponivel", "expected": "none"}
|