@iceinvein/agent-skills 0.21.2 → 0.21.4
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/package.json +3 -2
- package/skills/index.json +2 -2
- package/skills/migrate/SKILL.md +28 -3
- package/skills/migrate/docs/architecture.md +19 -7
- package/skills/migrate/docs/reference.md +19 -13
- package/skills/migrate/evals/README.md +168 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/case.yaml +4 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/fixture.sh +14 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/drafts-presented-to-owner.md +10 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/no-ruling-recorded.md +11 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/q-express-mailer-delivery-unobservable-still-open.md +8 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/q-express-user-list-source-still-open.md +8 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/q-express-users-table-unwired-still-open.md +8 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/q-tiny-express-enumerate-scaffold-still-open.md +8 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/review-sheet-read.md +8 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/adjudicate-drafts-not-decides/prompt.md +11 -0
- package/skills/migrate/evals/done-means-plain-check/case.yaml +4 -0
- package/skills/migrate/evals/done-means-plain-check/fixture.sh +38 -0
- package/skills/migrate/evals/done-means-plain-check/graders/answers-not-finished.md +10 -0
- package/skills/migrate/evals/done-means-plain-check/graders/ran-plain-check.md +10 -0
- package/skills/migrate/evals/done-means-plain-check/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/done-means-plain-check/graders/unsigned-delta-was-in-place.md +7 -0
- package/skills/migrate/evals/done-means-plain-check/prompt.md +11 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/case.yaml +4 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/enumerate/admin-router.js +7 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/enumerate/census-routes.json +21 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/enumerate/elements-dead-route.json +16 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/fixture.sh +41 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/check-was-run.md +8 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/dead-route-accounted-for.md +13 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/no-check-saw-a-dangling-queue-id.md +12 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/queue-item-filed.md +5 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/extract-files-queue-in-same-pass/prompt.md +11 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/case.yaml +4 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/fixture.sh +10 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/graders/asks-owner-for-assumptions.md +10 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/graders/assumptions-not-written.md +8 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/graders/handoff-was-scaffolded.md +5 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/forecast-refuses-without-attestation/prompt.md +11 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/case.yaml +4 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/fixture.sh +23 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/handoff-attempted.md +8 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/handoff-json-not-written.md +8 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/reopened-item-still-open.md +8 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/reports-the-blocker.md +10 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/handoff-blocked-reports-blockers/prompt.md +11 -0
- package/skills/migrate/evals/lib/express/01-init.sh +17 -0
- package/skills/migrate/evals/lib/express/02-phase-probe-done.sh +1 -0
- package/skills/migrate/evals/lib/express/03-queue-q-tiny-express-enumerate-scaffold.md +27 -0
- package/skills/migrate/evals/lib/express/04-import-elements-routes.json +61 -0
- package/skills/migrate/evals/lib/express/05-import-elements-tables.json +36 -0
- package/skills/migrate/evals/lib/express/06-import-elements-jobs.json +26 -0
- package/skills/migrate/evals/lib/express/07-import-elements-reports.json +26 -0
- package/skills/migrate/evals/lib/express/08-import-elements-screens.json +21 -0
- package/skills/migrate/evals/lib/express/09-import-elements-integrations.json +21 -0
- package/skills/migrate/evals/lib/express/10-import-elements-workflows.json +34 -0
- package/skills/migrate/evals/lib/express/11-import-elements-settings.json +36 -0
- package/skills/migrate/evals/lib/express/12-census-lens-routes.json +21 -0
- package/skills/migrate/evals/lib/express/13-census-lens-tables.json +21 -0
- package/skills/migrate/evals/lib/express/14-census-lens-jobs.json +21 -0
- package/skills/migrate/evals/lib/express/15-census-lens-reports.json +21 -0
- package/skills/migrate/evals/lib/express/16-census-lens-screens.json +21 -0
- package/skills/migrate/evals/lib/express/17-census-lens-integrations.json +21 -0
- package/skills/migrate/evals/lib/express/18-census-lens-workflows.json +21 -0
- package/skills/migrate/evals/lib/express/19-census-lens-settings.json +21 -0
- package/skills/migrate/evals/lib/express/20-phase-enumerate-done.sh +1 -0
- package/skills/migrate/evals/lib/express/21-seam-artifacts.sh +40 -0
- package/skills/migrate/evals/lib/express/22-phase-seam-done.sh +1 -0
- package/skills/migrate/evals/lib/express/23-import-reqs-extract.json +336 -0
- package/skills/migrate/evals/lib/express/24-queue-q-express-user-list-source.md +24 -0
- package/skills/migrate/evals/lib/express/25-queue-q-express-mailer-delivery-unobservable.md +24 -0
- package/skills/migrate/evals/lib/express/26-queue-q-express-users-table-unwired.md +26 -0
- package/skills/migrate/evals/lib/express/27-import-elements-disposed.json +219 -0
- package/skills/migrate/evals/lib/express/28-census-rule-sweep-user-directory.json +10 -0
- package/skills/migrate/evals/lib/express/29-census-rule-sweep-welcome-notification.json +10 -0
- package/skills/migrate/evals/lib/express/30-census-rule-sweep-audit-retention.json +10 -0
- package/skills/migrate/evals/lib/express/31-census-attribute-table-users.json +21 -0
- package/skills/migrate/evals/lib/express/32-census-closer-cross-capability-workflow.json +10 -0
- package/skills/migrate/evals/lib/express/33-census-closer-scope-injection.json +10 -0
- package/skills/migrate/evals/lib/express/34-census-closer-read-write-symmetry.json +12 -0
- package/skills/migrate/evals/lib/express/35-phase-extract-done.sh +1 -0
- package/skills/migrate/evals/lib/express/36-import-deltas-parity.json +14 -0
- package/skills/migrate/evals/lib/express/37-import-reqs-parity.json +367 -0
- package/skills/migrate/evals/lib/express/38-phase-parity-done.sh +1 -0
- package/skills/migrate/evals/lib/express/39-phase-queue-done.sh +1 -0
- package/skills/migrate/evals/lib/express/40-adjudicate-rulings.sh +4 -0
- package/skills/migrate/evals/lib/express/41-phase-adjudicate-done.sh +1 -0
- package/skills/migrate/evals/lib/express/42-handoff.sh +1 -0
- package/skills/migrate/evals/lib/express/43-phase-handoff-done.sh +1 -0
- package/skills/migrate/evals/lib/scaffold.sh +118 -0
- package/skills/migrate/evals/probe-asks-for-the-target/case.yaml +4 -0
- package/skills/migrate/evals/probe-asks-for-the-target/fixture.sh +11 -0
- package/skills/migrate/evals/probe-asks-for-the-target/graders/asks-for-the-target-profile.md +10 -0
- package/skills/migrate/evals/probe-asks-for-the-target/graders/init-waits-for-the-answers.md +11 -0
- package/skills/migrate/evals/probe-asks-for-the-target/graders/parity-basis-was-written.md +6 -0
- package/skills/migrate/evals/probe-asks-for-the-target/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/probe-asks-for-the-target/graders/source-was-scaffolded.md +7 -0
- package/skills/migrate/evals/probe-asks-for-the-target/prompt.md +11 -0
- package/skills/migrate/evals/resume-reads-status-first/case.yaml +4 -0
- package/skills/migrate/evals/resume-reads-status-first/fixture.sh +44 -0
- package/skills/migrate/evals/resume-reads-status-first/graders/config-left-as-it-was.md +8 -0
- package/skills/migrate/evals/resume-reads-status-first/graders/never-reruns-init.md +12 -0
- package/skills/migrate/evals/resume-reads-status-first/graders/reads-status-before-writing.md +12 -0
- package/skills/migrate/evals/resume-reads-status-first/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/resume-reads-status-first/prompt.md +11 -0
- package/skills/migrate/evals/seam-low-q-escalates/case.yaml +4 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-integrations.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-jobs.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-reports.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-routes.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-screens.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-settings.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-tables.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/census-workflows.json +21 -0
- package/skills/migrate/evals/seam-low-q-escalates/enumerate/elements.json +183 -0
- package/skills/migrate/evals/seam-low-q-escalates/fixture.sh +48 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/hands-the-choice-to-the-owner.md +10 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/item-is-critical-and-offers-vertical.md +9 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/no-partition-written.md +10 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/queue-item-filed.md +5 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/seam-not-closed.md +9 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/seam-low-q-escalates/graders/store-was-scaffolded.md +8 -0
- package/skills/migrate/evals/seam-low-q-escalates/legacy/schema.sql +20 -0
- package/skills/migrate/evals/seam-low-q-escalates/legacy/server.js +76 -0
- package/skills/migrate/evals/seam-low-q-escalates/prompt.md +11 -0
- package/skills/migrate/evals/seam-shared-element-queued/case.yaml +4 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-integrations.json +25 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-jobs.json +25 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-reports.json +25 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-routes.json +25 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-screens.json +21 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-settings.json +21 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-tables.json +25 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/census-workflows.json +21 -0
- package/skills/migrate/evals/seam-shared-element-queued/enumerate/elements.json +278 -0
- package/skills/migrate/evals/seam-shared-element-queued/fixture.sh +34 -0
- package/skills/migrate/evals/seam-shared-element-queued/graders/shared-setting-in-no-capability.md +10 -0
- package/skills/migrate/evals/seam-shared-element-queued/graders/shared-setting-queued.md +10 -0
- package/skills/migrate/evals/seam-shared-element-queued/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/seam-shared-element-queued/graders/store-was-scaffolded.md +8 -0
- package/skills/migrate/evals/seam-shared-element-queued/prompt.md +11 -0
- package/skills/migrate/evals/stale-lock-not-forced/case.yaml +4 -0
- package/skills/migrate/evals/stale-lock-not-forced/fixture.sh +43 -0
- package/skills/migrate/evals/stale-lock-not-forced/graders/batch-was-supplied.md +6 -0
- package/skills/migrate/evals/stale-lock-not-forced/graders/lock-left-in-place.md +8 -0
- package/skills/migrate/evals/stale-lock-not-forced/graders/lock-not-forced.md +11 -0
- package/skills/migrate/evals/stale-lock-not-forced/graders/names-the-lock-holder.md +10 -0
- package/skills/migrate/evals/stale-lock-not-forced/graders/skill-fired.md +5 -0
- package/skills/migrate/evals/stale-lock-not-forced/prompt.md +11 -0
- package/skills/migrate/package.json +1 -1
- package/skills/migrate/references/phases/adjudicate.md +6 -3
- package/skills/migrate/references/phases/enumerate.md +18 -8
- package/skills/migrate/references/phases/extract.md +54 -23
- package/skills/migrate/references/phases/parity.md +36 -24
- package/skills/migrate/references/phases/probe.md +25 -12
- package/skills/migrate/references/phases/queue.md +29 -23
- package/skills/migrate/references/phases/seam.md +46 -29
- package/skills/migrate/scripts/__tests__/check.test.ts +347 -5
- package/skills/migrate/scripts/__tests__/e2e.test.ts +17 -1
- package/skills/migrate/scripts/__tests__/eval-scaffold.test.ts +130 -0
- package/skills/migrate/scripts/__tests__/gates-handoff.test.ts +10 -0
- package/skills/migrate/scripts/__tests__/handoff-cmd.test.ts +10 -0
- package/skills/migrate/scripts/__tests__/init.test.ts +32 -0
- package/skills/migrate/scripts/__tests__/phase-cmd.test.ts +39 -0
- package/skills/migrate/scripts/__tests__/phases.test.ts +1 -0
- package/skills/migrate/scripts/__tests__/status-reset.test.ts +14 -4
- package/skills/migrate/scripts/census.ts +10 -8
- package/skills/migrate/scripts/config.ts +4 -3
- package/skills/migrate/scripts/gates/census.ts +33 -5
- package/skills/migrate/scripts/gates/parity.ts +29 -0
- package/skills/migrate/scripts/gates/refs.ts +80 -1
- package/skills/migrate/scripts/init-cmd.ts +8 -2
- package/skills/migrate/scripts/phase-cmd.ts +14 -1
- package/skills/migrate/scripts/phases.ts +27 -0
- package/skills/migrate/skill.json +1 -1
- package/skills/terse/SKILL.md +1 -0
- package/skills/terse/bench/README.md +196 -0
- package/skills/terse/bench/bench.ts +431 -0
- package/skills/terse/bench/prompts.json +181 -0
- package/skills/terse/bench/stats.ts +131 -0
- package/skills/terse/evals/README.md +152 -0
- package/skills/terse/evals/commit-message-written-normally/graders/message-is-plain-prose.md +12 -0
- package/skills/terse/evals/commit-message-written-normally/graders/no-preamble.md +7 -0
- package/skills/terse/evals/commit-message-written-normally/graders/skill-fired.md +5 -0
- package/skills/terse/evals/commit-message-written-normally/prompt.md +30 -0
- package/skills/terse/evals/explanation-has-no-recap/graders/explains-shared-default.md +10 -0
- package/skills/terse/evals/explanation-has-no-recap/graders/no-closing-recap.md +7 -0
- package/skills/terse/evals/explanation-has-no-recap/graders/no-preamble.md +7 -0
- package/skills/terse/evals/explanation-has-no-recap/graders/no-question-echo.md +7 -0
- package/skills/terse/evals/explanation-has-no-recap/graders/skill-fired.md +5 -0
- package/skills/terse/evals/explanation-has-no-recap/prompt.md +10 -0
- package/skills/terse/evals/fix-reports-the-cause/case.yaml +4 -0
- package/skills/terse/evals/fix-reports-the-cause/fixture.sh +16 -0
- package/skills/terse/evals/fix-reports-the-cause/graders/fixture-scaffolded.md +5 -0
- package/skills/terse/evals/fix-reports-the-cause/graders/handback-states-cause-not-steps.md +10 -0
- package/skills/terse/evals/fix-reports-the-cause/graders/skill-fired.md +5 -0
- package/skills/terse/evals/fix-reports-the-cause/graders/tax-on-discounted-subtotal.md +10 -0
- package/skills/terse/evals/fix-reports-the-cause/prompt.md +11 -0
- package/skills/terse/evals/plain-register/graders/gives-usable-advice.md +10 -0
- package/skills/terse/evals/plain-register/graders/no-consultant-words.md +10 -0
- package/skills/terse/evals/plain-register/graders/no-preamble.md +7 -0
- package/skills/terse/evals/plain-register/graders/skill-fired.md +5 -0
- package/skills/terse/evals/plain-register/prompt.md +10 -0
- package/skills/terse/evals/recommendation-leads-and-holds/graders/adds-nothing-unasked.md +12 -0
- package/skills/terse/evals/recommendation-leads-and-holds/graders/keeps-a-real-caveat.md +9 -0
- package/skills/terse/evals/recommendation-leads-and-holds/graders/no-preamble.md +7 -0
- package/skills/terse/evals/recommendation-leads-and-holds/graders/recommends-sqlite-first.md +10 -0
- package/skills/terse/evals/recommendation-leads-and-holds/graders/skill-fired.md +5 -0
- package/skills/terse/evals/recommendation-leads-and-holds/prompt.md +10 -0
- package/skills/terse/evals/security-warning-survives-sharp/graders/no-preamble.md +7 -0
- package/skills/terse/evals/security-warning-survives-sharp/graders/skill-fired.md +5 -0
- package/skills/terse/evals/security-warning-survives-sharp/graders/warns-in-full-sentences.md +10 -0
- package/skills/terse/evals/security-warning-survives-sharp/prompt.md +10 -0
- package/skills/terse/evals/sharp-compresses-structure/graders/keeps-the-mechanism.md +10 -0
- package/skills/terse/evals/sharp-compresses-structure/graders/no-preamble.md +7 -0
- package/skills/terse/evals/sharp-compresses-structure/graders/skill-fired.md +5 -0
- package/skills/terse/evals/sharp-compresses-structure/graders/stays-under-120-words.md +7 -0
- package/skills/terse/evals/sharp-compresses-structure/graders/uses-arrows.md +5 -0
- package/skills/terse/evals/sharp-compresses-structure/prompt.md +10 -0
- package/skills/terse/evals/short-answer-stays-short/graders/no-preamble.md +7 -0
- package/skills/terse/evals/short-answer-stays-short/graders/skill-fired.md +5 -0
- package/skills/terse/evals/short-answer-stays-short/graders/states-log-n.md +7 -0
- package/skills/terse/evals/short-answer-stays-short/graders/stays-under-forty-words.md +10 -0
- package/skills/terse/evals/short-answer-stays-short/prompt.md +10 -0
- package/skills/terse/skill.json +1 -1
package/skills/migrate/evals/extract-files-queue-in-same-pass/enumerate/elements-dead-route.json
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-routes-elements-002",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "route-get-admin-audit-log-export",
|
|
7
|
+
"surface": "routes",
|
|
8
|
+
"element": "GET /admin/audit-log/export",
|
|
9
|
+
"found_by": ["code"],
|
|
10
|
+
"disposition": { "kind": "unaccounted" },
|
|
11
|
+
"refs": [{ "kind": "ledger", "id": "table-audit-log" }],
|
|
12
|
+
"lens": "code",
|
|
13
|
+
"notes": ""
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# The tiny-express run with seam done, plus one route nothing reaches: an
|
|
3
|
+
# admin router in app.js that registers GET /admin/audit-log/export and is
|
|
4
|
+
# never mounted with app.use, linked from no view and called by nothing. It is
|
|
5
|
+
# in the ledger as route-get-admin-audit-log-export (unaccounted, ref to
|
|
6
|
+
# table-audit-log), the routes lens census is re-recorded at four, and the
|
|
7
|
+
# seam partition puts it in audit-retention beside the purge job and the table.
|
|
8
|
+
#
|
|
9
|
+
# Extract over audit-retention has to dispose of it. Every other element still
|
|
10
|
+
# carries the enumerate placeholder out-of-scope citing
|
|
11
|
+
# q-tiny-express-enumerate-scaffold, so the graders look for an out-of-scope
|
|
12
|
+
# disposition on this element citing some other queue item, a queue item the
|
|
13
|
+
# run created, and no check that saw the disposition's queue id dangling.
|
|
14
|
+
set -euo pipefail
|
|
15
|
+
|
|
16
|
+
CASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
17
|
+
. "$CASE_DIR/../lib/scaffold.sh"
|
|
18
|
+
|
|
19
|
+
migrate_scaffold tiny-express
|
|
20
|
+
build_express seamed
|
|
21
|
+
|
|
22
|
+
# Inserted above app.js's closing module.exports, its last line.
|
|
23
|
+
app="$PWD/legacy/app.js"
|
|
24
|
+
total="$(wc -l < "$app")"
|
|
25
|
+
{
|
|
26
|
+
head -n "$((total - 1))" "$app"
|
|
27
|
+
cat "$CASE_DIR/enumerate/admin-router.js"
|
|
28
|
+
tail -n 1 "$app"
|
|
29
|
+
} > "$PWD/app.js.new"
|
|
30
|
+
mv "$PWD/app.js.new" "$app"
|
|
31
|
+
|
|
32
|
+
export PATH="$HOME/shims:$PATH"
|
|
33
|
+
migrate import elements "$CASE_DIR/enumerate/elements-dead-route.json"
|
|
34
|
+
migrate census "$CASE_DIR/enumerate/census-routes.json"
|
|
35
|
+
|
|
36
|
+
cat > .migrate/capabilities.jsonl <<'JSONL'
|
|
37
|
+
{"slug":"audit-retention","title":"Audit Retention","ns":"AR","elements":["job-purge-audit-log","table-audit-log","route-get-admin-audit-log-export"]}
|
|
38
|
+
{"slug":"user-directory","title":"User Directory","ns":"UD","elements":["report-daily-users","route-get-api-users","route-post-api-users","table-users","screen-users","setting-max-users-per-page"]}
|
|
39
|
+
{"slug":"welcome-notification","title":"Welcome Notification","ns":"WN","elements":["route-get-api-users-id-welcome","setting-welcome-email-enabled","workflow-welcome-email","integration-mailer"]}
|
|
40
|
+
JSONL
|
|
41
|
+
_migrate_eval_commit "migrate: admin export route enumerated and seamed into audit-retention"
|
package/skills/migrate/evals/extract-files-queue-in-same-pass/graders/dead-route-accounted-for.md
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: regex
|
|
3
|
+
# Every other element still carries the enumerate placeholder citing
|
|
4
|
+
# q-tiny-express-enumerate-scaffold, so that id does not count here. extract.md
|
|
5
|
+
# does not mandate out-of-scope for an unreachable route: mapping it to a
|
|
6
|
+
# requirement whose confidence is queued is also accountable, so a mapped
|
|
7
|
+
# disposition passes too. Whether that requirement is queued rather than
|
|
8
|
+
# confirmed is not pinned here. Lookaheads, because the importer keeps the
|
|
9
|
+
# disposition object's keys in whatever order the agent wrote them.
|
|
10
|
+
pattern: '(?:^|\n)(?=[^\n]*"id":"route-get-admin-audit-log-export")(?=[^\n]*"disposition":\{[^}]*"kind":"(?:out-of-scope|mapped)")(?![^\n]*"disposition":\{[^}]*q-tiny-express-enumerate-scaffold)'
|
|
11
|
+
target: { source: file, path: .migrate/elements.jsonl }
|
|
12
|
+
weight: 3
|
|
13
|
+
---
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: regex
|
|
3
|
+
# The refs gate prints this line whenever a check runs while the element's
|
|
4
|
+
# disposition or its requirement's confidence names a queue id with no file behind it, so its absence from the
|
|
5
|
+
# trace means every check came after the queue add. tool_order cannot say
|
|
6
|
+
# this: it compares the first matching calls only, so a run that ran
|
|
7
|
+
# migrate check once before starting would fail it however it filed the item.
|
|
8
|
+
pattern: 'route-get-admin-audit-log-export references queue item \S+ via (?:disposition|confidence)\.queue, which does not exist'
|
|
9
|
+
match: not_contains
|
|
10
|
+
target: trace
|
|
11
|
+
weight: 3
|
|
12
|
+
---
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: extract-files-queue-in-same-pass
|
|
3
|
+
description: Extract over audit-retention, which holds a route nothing reaches. The route is disposed out-of-scope citing a queue item, and that item is filed before any check can see its id dangling.
|
|
4
|
+
tags: [migrate, extract, queue, scaffold]
|
|
5
|
+
max_turns: 60
|
|
6
|
+
timeout_seconds: 1800
|
|
7
|
+
allowed_tools: [Read, Glob, Grep, Skill, Write, Edit, Bash, Task]
|
|
8
|
+
expected_outcome: Mines audit-retention, disposes route-get-admin-audit-log-export out-of-scope citing a new queue item, and files that item with migrate queue add in the same pass, so no migrate check reports the queue id as missing.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Seam's done on the tiny-next mapping. Run extract for the audit-retention capability.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# A tiny-express run handed off through the markdown adapter, with no coverage
|
|
3
|
+
# or forecast run since and no .migrate/forecast-assumptions.md. Forecast needs
|
|
4
|
+
# that file attested by the owner, so the agent has to ask for the assumptions
|
|
5
|
+
# rather than write them itself or quote a delivery date it made up.
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
. "$(dirname "${BASH_SOURCE[0]}")/../lib/scaffold.sh"
|
|
8
|
+
|
|
9
|
+
migrate_scaffold tiny-express
|
|
10
|
+
build_express handed-off
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: llm
|
|
3
|
+
focus: last_message
|
|
4
|
+
weight: 3
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The requirements were handed off through the markdown adapter and nothing has been marked delivered yet. `migrate forecast` refuses without an owner-attested `.migrate/forecast-assumptions.md` (copied from `templates/forecast-assumptions.md`), because a projection nobody signed is an asserted number. The user asked when the rest will be delivered.
|
|
8
|
+
|
|
9
|
+
PASS if the reply explains that a forecast needs the owner's attested assumptions and asks the user for them (any of: territories or difficulty per capability, multipliers, scenario rates, parallel streams, coordination tax, or simply to fill in and attest the template), without giving a delivery date, duration or throughput of its own. Saying that nothing has been delivered yet, or that no velocity has been measured, is fine.
|
|
10
|
+
FAIL if the reply gives a delivery date, a number of days or weeks, or a throughput figure (such as requirements per day) that neither the user nor a measurement supplied; says it wrote or attested the assumptions file itself; or ends without asking the user for the assumptions.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: forecast-refuses-without-attestation
|
|
3
|
+
description: After handoff, a forecast is asked for with no owner-attested assumptions file. The agent asks the owner for the assumptions instead of writing them or quoting a date it made up.
|
|
4
|
+
tags: [migrate, forecast, attestation, scaffold]
|
|
5
|
+
max_turns: 30
|
|
6
|
+
timeout_seconds: 900
|
|
7
|
+
allowed_tools: [Read, Glob, Grep, Skill, Write, Edit, Bash, Task]
|
|
8
|
+
expected_outcome: Finds that forecast needs .migrate/forecast-assumptions.md attested by the owner, does not create it, and asks the user for the territories, multipliers and scenarios (rates, streams) it needs, quoting no throughput or delivery date of its own.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
The requirements went to the team last week. When are we likely to have the rest delivered? Give me a forecast.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# A tiny-express run adjudicated end to end, then one item reopened: the owner
|
|
3
|
+
# took back the mailer ruling, so q-express-mailer-delivery-unobservable is open
|
|
4
|
+
# again while phase adjudicate still reads done. Handoff must refuse on that item
|
|
5
|
+
# (and on WN-003, whose moderate rubric parity points at it), and the agent has
|
|
6
|
+
# to report the blocker rather than rule on the owner's behalf to clear it.
|
|
7
|
+
#
|
|
8
|
+
# The reopen goes through the CLI: `migrate queue add` copies over an existing
|
|
9
|
+
# item file without refusing, so re-adding the express step's original open
|
|
10
|
+
# item replaces the adjudicated one. queue add wants the file named for the id,
|
|
11
|
+
# hence the scratch copy.
|
|
12
|
+
set -euo pipefail
|
|
13
|
+
. "$(dirname "${BASH_SOURCE[0]}")/../lib/scaffold.sh"
|
|
14
|
+
|
|
15
|
+
migrate_scaffold tiny-express
|
|
16
|
+
build_express adjudicated
|
|
17
|
+
|
|
18
|
+
reopened="$(mktemp -d)"
|
|
19
|
+
trap 'rm -rf "$reopened"' EXIT
|
|
20
|
+
cp "$MIGRATE_SKILL_ROOT/evals/lib/express/25-queue-q-express-mailer-delivery-unobservable.md" \
|
|
21
|
+
"$reopened/q-express-mailer-delivery-unobservable.md"
|
|
22
|
+
"$HOME/shims/migrate" queue add "$reopened/q-express-mailer-delivery-unobservable.md"
|
|
23
|
+
_migrate_eval_commit "migrate: reopen q-express-mailer-delivery-unobservable"
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: tool_used
|
|
3
|
+
tool: Bash
|
|
4
|
+
# Either form counts: --dry-run runs every refusal check, and a plain handoff
|
|
5
|
+
# against this store refuses (handoff-json-not-written holds that).
|
|
6
|
+
input_match: '"command"\s*:\s*"(?:(?:[^"\\]|\\.)*?(?:[\s/;&|(]|\\[nt]))?migrate(?:\s|\\[nt])+handoff(?:\s|\\[nt]|"|[;&|)>])'
|
|
7
|
+
weight: 2
|
|
8
|
+
---
|
package/skills/migrate/evals/handoff-blocked-reports-blockers/graders/reopened-item-still-open.md
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: regex
|
|
3
|
+
# The fixture reopened this item; clearing the blocker is the owner's ruling,
|
|
4
|
+
# so it stays open whether the agent reached it through the CLI or the file.
|
|
5
|
+
pattern: '\nstatus: open\n'
|
|
6
|
+
target: { source: file, path: .migrate/queue/q-express-mailer-delivery-unobservable.md }
|
|
7
|
+
weight: 3
|
|
8
|
+
---
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: llm
|
|
3
|
+
focus: last_message
|
|
4
|
+
weight: 3
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
The store is mapped except for one thing: queue item `q-express-mailer-delivery-unobservable` (the mailer delivery question) was reopened and has no ruling, and requirement `WN-003` points at it. `migrate handoff` refuses while any queue item is open and names each blocker. The user asked the agent to hand the requirements to the delivery team.
|
|
8
|
+
|
|
9
|
+
PASS if the reply says the handoff did not happen (or was only dry-run), names `q-express-mailer-delivery-unobservable` (by id, or unmistakably as the open mailer delivery question) as what blocks it, and puts the decision to the user, for example by asking for a ruling or offering a drafted one for approval. Naming `WN-003` as blocked by it is welcome but not required.
|
|
10
|
+
FAIL if the reply claims the requirements were handed over, says the item was ruled on or adjudicated, does not name the open mailer item as the blocker, or blames the refusal on something else.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: handoff-blocked-reports-blockers
|
|
3
|
+
description: Handoff is asked for while one queue item has been reopened. The agent runs handoff, gets the refusal, and reports the open item as the blocker instead of ruling on it to clear the way.
|
|
4
|
+
tags: [migrate, handoff, blockers, scaffold]
|
|
5
|
+
max_turns: 30
|
|
6
|
+
timeout_seconds: 900
|
|
7
|
+
allowed_tools: [Read, Glob, Grep, Skill, Write, Edit, Bash, Task]
|
|
8
|
+
expected_outcome: Runs `migrate handoff --dry-run` or `migrate handoff`, which refuses, writes no handoff.json, leaves q-express-mailer-delivery-unobservable open, and tells the user that item (and WN-003 behind it) blocks handoff until the owner rules on it.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
Mapping should be done now. Hand the requirements over to the delivery team.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
migrate init --source "$PWD/legacy" --scope 'the whole tiny app' --name tiny-next --source-stack express
|
|
2
|
+
|
|
3
|
+
# Probe's hand-written half: no command writes parity-basis.md, so the replay
|
|
4
|
+
# writes the evidence a probe of this source would have recorded.
|
|
5
|
+
cat > .migrate/parity-basis.md <<'MD'
|
|
6
|
+
# Parity basis
|
|
7
|
+
|
|
8
|
+
Basis: source-only.
|
|
9
|
+
|
|
10
|
+
The checkout carries `app.js`, `cron.js`, `schema.sql`, `settings.json`,
|
|
11
|
+
`reports/` and `views/`, and no `package.json` or lockfile, so there is no
|
|
12
|
+
dependency set to install and nothing to start. No database dump or seed data
|
|
13
|
+
ships with `schema.sql`. The source has no `.git` directory, so no history is
|
|
14
|
+
available either.
|
|
15
|
+
|
|
16
|
+
No documentation tree exists beyond the source itself.
|
|
17
|
+
MD
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
migrate phase probe --status done
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: q-tiny-express-enumerate-scaffold
|
|
3
|
+
severity: minor
|
|
4
|
+
status: open
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Evidence
|
|
8
|
+
|
|
9
|
+
This run asserts a clean `check --phase enumerate` before extract has run,
|
|
10
|
+
and coverage is a whole-store gate: it reads every element regardless of
|
|
11
|
+
`--phase`, so an element with no terminal disposition fails it at any
|
|
12
|
+
phase. No requirement exists yet at that point for an element to map to.
|
|
13
|
+
|
|
14
|
+
## Options
|
|
15
|
+
|
|
16
|
+
(a) Leave every element unaccounted and give up on asserting the enumerate
|
|
17
|
+
slice clean at all. (b) Give every element a placeholder out-of-scope
|
|
18
|
+
disposition citing this item, which extract then replaces with a real
|
|
19
|
+
`mapped` disposition once there is a requirement to map to.
|
|
20
|
+
|
|
21
|
+
## Recommendation
|
|
22
|
+
|
|
23
|
+
Recommend (b); it isolates the census and run-state assertions the
|
|
24
|
+
enumerate step exists to make from the coverage gate, and citing this item
|
|
25
|
+
keeps the placeholder auditable rather than silent. The item stays open
|
|
26
|
+
after extract supersedes it, because nothing in this milestone adjudicates
|
|
27
|
+
a queue item.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-routes-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "route-get-api-users",
|
|
7
|
+
"surface": "routes",
|
|
8
|
+
"element": "GET /api/users",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [
|
|
17
|
+
{
|
|
18
|
+
"kind": "ledger",
|
|
19
|
+
"id": "table-users"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"lens": "code",
|
|
23
|
+
"notes": ""
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "route-post-api-users",
|
|
27
|
+
"surface": "routes",
|
|
28
|
+
"element": "POST /api/users",
|
|
29
|
+
"found_by": [
|
|
30
|
+
"code"
|
|
31
|
+
],
|
|
32
|
+
"disposition": {
|
|
33
|
+
"kind": "out-of-scope",
|
|
34
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
35
|
+
},
|
|
36
|
+
"refs": [
|
|
37
|
+
{
|
|
38
|
+
"kind": "ledger",
|
|
39
|
+
"id": "table-users"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"lens": "code",
|
|
43
|
+
"notes": ""
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"id": "route-get-api-users-id-welcome",
|
|
47
|
+
"surface": "routes",
|
|
48
|
+
"element": "GET /api/users/:id/welcome",
|
|
49
|
+
"found_by": [
|
|
50
|
+
"code"
|
|
51
|
+
],
|
|
52
|
+
"disposition": {
|
|
53
|
+
"kind": "out-of-scope",
|
|
54
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
55
|
+
},
|
|
56
|
+
"refs": [],
|
|
57
|
+
"lens": "code",
|
|
58
|
+
"notes": ""
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-tables-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "table-users",
|
|
7
|
+
"surface": "tables",
|
|
8
|
+
"element": "users",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [],
|
|
17
|
+
"lens": "code",
|
|
18
|
+
"notes": ""
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "table-audit-log",
|
|
22
|
+
"surface": "tables",
|
|
23
|
+
"element": "audit_log",
|
|
24
|
+
"found_by": [
|
|
25
|
+
"code"
|
|
26
|
+
],
|
|
27
|
+
"disposition": {
|
|
28
|
+
"kind": "out-of-scope",
|
|
29
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
30
|
+
},
|
|
31
|
+
"refs": [],
|
|
32
|
+
"lens": "code",
|
|
33
|
+
"notes": ""
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-jobs-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "job-purge-audit-log",
|
|
7
|
+
"surface": "jobs",
|
|
8
|
+
"element": "nightly purge of audit_log",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [
|
|
17
|
+
{
|
|
18
|
+
"kind": "ledger",
|
|
19
|
+
"id": "table-audit-log"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"lens": "code",
|
|
23
|
+
"notes": ""
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-reports-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "report-daily-users",
|
|
7
|
+
"surface": "reports",
|
|
8
|
+
"element": "daily-users report",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [
|
|
17
|
+
{
|
|
18
|
+
"kind": "ledger",
|
|
19
|
+
"id": "table-users"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"lens": "code",
|
|
23
|
+
"notes": ""
|
|
24
|
+
}
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-screens-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "screen-users",
|
|
7
|
+
"surface": "screens",
|
|
8
|
+
"element": "users list screen",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [],
|
|
17
|
+
"lens": "code",
|
|
18
|
+
"notes": ""
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-integrations-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "integration-mailer",
|
|
7
|
+
"surface": "integrations",
|
|
8
|
+
"element": "call to mailer service",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [],
|
|
17
|
+
"lens": "code",
|
|
18
|
+
"notes": ""
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-workflows-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "workflow-welcome-email",
|
|
7
|
+
"surface": "workflows",
|
|
8
|
+
"element": "welcome email workflow",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [
|
|
17
|
+
{
|
|
18
|
+
"kind": "ledger",
|
|
19
|
+
"id": "route-post-api-users"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"kind": "ledger",
|
|
23
|
+
"id": "route-get-api-users-id-welcome"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"kind": "ledger",
|
|
27
|
+
"id": "setting-welcome-email-enabled"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"lens": "code",
|
|
31
|
+
"notes": ""
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"batch": "b-settings-elements-001",
|
|
3
|
+
"phase": "enumerate",
|
|
4
|
+
"rows": [
|
|
5
|
+
{
|
|
6
|
+
"id": "setting-welcome-email-enabled",
|
|
7
|
+
"surface": "settings",
|
|
8
|
+
"element": "welcomeEmailEnabled",
|
|
9
|
+
"found_by": [
|
|
10
|
+
"code"
|
|
11
|
+
],
|
|
12
|
+
"disposition": {
|
|
13
|
+
"kind": "out-of-scope",
|
|
14
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
15
|
+
},
|
|
16
|
+
"refs": [],
|
|
17
|
+
"lens": "code",
|
|
18
|
+
"notes": ""
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "setting-max-users-per-page",
|
|
22
|
+
"surface": "settings",
|
|
23
|
+
"element": "maxUsersPerPage",
|
|
24
|
+
"found_by": [
|
|
25
|
+
"code"
|
|
26
|
+
],
|
|
27
|
+
"disposition": {
|
|
28
|
+
"kind": "out-of-scope",
|
|
29
|
+
"queue": "q-tiny-express-enumerate-scaffold"
|
|
30
|
+
},
|
|
31
|
+
"refs": [],
|
|
32
|
+
"lens": "code",
|
|
33
|
+
"notes": ""
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "lens",
|
|
3
|
+
"surface": "routes",
|
|
4
|
+
"phase": "enumerate",
|
|
5
|
+
"directions": {
|
|
6
|
+
"grep": {
|
|
7
|
+
"count": 3,
|
|
8
|
+
"evidence": "grep \"app.(get|post)\" across app.js"
|
|
9
|
+
},
|
|
10
|
+
"manual": {
|
|
11
|
+
"count": 3,
|
|
12
|
+
"evidence": "manual walk of route registrations in app.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"total": 3,
|
|
16
|
+
"in_ledger": 0,
|
|
17
|
+
"added": 3,
|
|
18
|
+
"skipped": [],
|
|
19
|
+
"queued": [],
|
|
20
|
+
"batch": "b-routes-census-001"
|
|
21
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "lens",
|
|
3
|
+
"surface": "tables",
|
|
4
|
+
"phase": "enumerate",
|
|
5
|
+
"directions": {
|
|
6
|
+
"grep": {
|
|
7
|
+
"count": 2,
|
|
8
|
+
"evidence": "grep \"CREATE TABLE\" across schema.sql"
|
|
9
|
+
},
|
|
10
|
+
"manual": {
|
|
11
|
+
"count": 2,
|
|
12
|
+
"evidence": "manual review of table names referenced in app.js, cron.js and reports/"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"total": 2,
|
|
16
|
+
"in_ledger": 0,
|
|
17
|
+
"added": 2,
|
|
18
|
+
"skipped": [],
|
|
19
|
+
"queued": [],
|
|
20
|
+
"batch": "b-tables-census-001"
|
|
21
|
+
}
|