Repository navigation
Five cards break their directory's schema, two carry non-ASCII (found by the #6063 test lane) #7911
Copy link
Copy link
Open
Labels
Description
Part of #6063 (t27b coverage). Found while writing real tests for the pass_vacuous cards of specs/crons and specs/functions (the lane of #7903). The tests hold each card to the schema its directory's README states. Five cards break that schema, and two more carry non-ASCII text. The lane does not change any existing line of a spec, so the tests leave these rules out on the cards below; nothing here is fixed by the lane.
What is wrong
specs/crons/railway-jobsearch-cron.t27:IDdoes not carryREPO.specs/crons/README.mdsaysIDis<host>/<repo>/<slug>andREPOis the short repo name.- The card has
ID = "railway-cron/999/jobsearch-cron"andREPO = "railway". - Either
REPOshould be the repository the middle segment names (999), or the README should say what<repo>means for a Railway cron service.
- Four function cards break the
IDgrammar ofspecs/functions/README.md(<domain>-<object>-<verb>, withDOMAINits first part):client-telemetry-daily.t27andclub-invoice-abandoned-watch.t27:DOMAIN = "analytics".robokassa-unclaimed-watch.t27andton-pending-watch.t27:DOMAIN = "money".- The other 29 function cards follow the grammar.
DOMAIN = "money"is outside the README's vocabulary. The vocabulary isneuro | reels | training | morph | render | payment | broadcast | instagram | content | monitoring | analytics | webhook | welcome | crm. The two cards of item 2 usemoney.- The README's own generator rules do not list
DOMAINamong the fields that fail the build. - Either add
moneyto the vocabulary or usepayment.
- The README's own generator rules do not list
- Non-ASCII text in two cards (L3 PURITY; both READMEs say the cards are ASCII-only):
specs/crons/trinity-brain-ci.t27:NAMEholds a superscript three and an em dash.specs/skills/t27-wave-audit.t27:NAMEholds an em dash.
The four function cards of item 2 came home from trinity's mirror in #7304. The railway card and the two cards of item 4 date from the first commit of the catalogs (#3543).
What the lane's tests do about it
- Item 1: the railway card's test checks only the shape of
ID(<host>/<a>/<b>), not its middle segment. - Items 2 and 3: those cards get no
<domain>-...test. The twoanalyticsones still check thatDOMAINis in the vocabulary; the twomoneyones do not. - Item 4: no test reads
NAME.
Done when
Each card agrees with its README (or the README states the exception), and the lane's tests can check the rule on these cards too.
User Scenarios
- Given a
specs/crons/railway-jobsearch-cron.t27card withID = "railway-cron/999/jobsearch-cron"andREPO = "railway", when the card is validated againstspecs/crons/README.mdwhich statesIDis<host>/<repo>/<slug>andREPOis the short repo name, then the card either hasREPO = "999"or the README clarifies what<repo>means for Railway cron services. - Given four function cards (
client-telemetry-daily.t27,club-invoice-abandoned-watch.t27,robokassa-unclaimed-watch.t27,ton-pending-watch.t27) withDOMAINvaluesanalyticsormoneythat don't match theirIDprefix, when validated againstspecs/functions/README.mdwhich requiresIDgrammar<domain>-<object>-<verb>withDOMAINas its first part, then each card'sDOMAINmatches itsIDprefix and is in the README's vocabulary. - Given
specs/crons/trinity-brain-ci.t27andspecs/skills/t27-wave-audit.t27with non-ASCII characters inNAME, when validated against their directory READMEs which state cards are ASCII-only, then both cards contain only ASCII text.
Requirements
- FR-001:
specs/crons/railway-jobsearch-cron.t27MUST haveREPOequal to the middle segment ofID(999) orspecs/crons/README.mdMUST document the exception for Railway cron services. - FR-002:
specs/functions/client-telemetry-daily.t27andspecs/functions/club-invoice-abandoned-watch.t27MUST haveDOMAINmatching theirIDprefix (clientandclubrespectively) and the value MUST be in the vocabulary ofspecs/functions/README.md. - FR-003:
specs/functions/robokassa-unclaimed-watch.t27andspecs/functions/ton-pending-watch.t27MUST haveDOMAINmatching theirIDprefix (robokassaandtonrespectively) and the value MUST be in the vocabulary ofspecs/functions/README.md, ormoneyMUST be added to the vocabulary. - FR-004:
specs/crons/trinity-brain-ci.t27MUST contain only ASCII characters in all fields. - FR-005:
specs/skills/t27-wave-audit.t27MUST contain only ASCII characters in all fields. - FR-006: The lane's tests MUST validate the
REPOfield againstIDmiddle segment for the railway card. - FR-007: The lane's tests MUST validate
<domain>-<object>-<verb>grammar and vocabulary membership for all four function cards. - FR-008: The lane's tests MUST validate ASCII-only
NAMEfields for the two non-ASCII cards.
Boundary
- specs/crons/railway-jobsearch-cron.t27
- specs/crons/trinity-brain-ci.t27
- specs/skills/t27-wave-audit.t27
- specs/crons/README.md
- specs/functions/README.md
- specs/functions/client-telemetry-daily.t27
- specs/functions/club-invoice-abandoned-watch.t27
- specs/functions/robokassa-unclaimed-watch.t27
- specs/functions/ton-pending-watch.t27
Reactions are currently unavailable
Activity
specs(crons): real tests for 13 cron cards, 999-multibots-telegraf an…
specs(functions): real tests for 9 function cards, analytics to crm (C…
specs(functions): real tests for 9 function cards, morph to ton (Closes
t27b checked: test blocks for 5 specs in specs/agents, specs/skills, …