chrismdp / counting-house-live
Fernwick Air: a live contact, rebook after a missed connection
AWML checked this file when it was pushed, and the registry refuses a push with any mistake. Here is each check it ran, in the order its spec gives them.
workflow.yaml
Checked by AWML v0.6.0
- The file is YAML
file.yamlPassedEach file can be read, and holds a YAML mapping of fields.
- The file is of the version this release reads
file.versionPassedawml is "0.6". An older file is upgraded with awml convert.
- Every field is known and none is missing
fields.knownPassedEach file, scope, part, line, implementation, block and comment has the fields it needs and no others, and each list is a list of mappings.
- Every kind is known
kinds.knownPassedEach part and line has a kind the spec defines.
- No id is used twice
ids.uniquePassedScope, part, block and comment ids are unique across the file.
- Every id is well written
ids.writtenPassedAn id is letters, digits and underscores, starting with a letter, and a block's platform is a company id or owner/platforms/slug.
- Every value that should be text is text
values.textPassedIds, labels, kinds and references are text, not something YAML read as true, false, a number or a date.
- Every reference names something in the file
references.knownPassedEach in, from and to, each part a block names and each part a comment ties names a scope, block or part the file has.
- No scope or block is nested in itself
nesting.acyclicPassedFollowing in from any scope or block never leads back to it.
- A comment is linked only by tie lines
comments.tie-onlyPassedA comment moves nothing, so only a tie, or a hidden line, may touch it.
- Every tie has a comment at one end
ties.commentPassedA tie links a comment to what it explains, so one of its ends is a comment.
- Every op is known and on a step
ops.knownPassedAn op is one of the operations the spec lists, on an ai, code or person step.
- Only a do step leads to an outside action
operations.only-do-actsPassedA step that leads to an outside action, straight or through a review or a fork, is a do step.
- An answer or check step never writes to a context
operations.answer-check-read-onlyPassedAn answer step and a check step read contexts and speak on surfaces, but never write to a context.
- Every outside action's label ends with its tier
tiers.writtenPassedAn outside action's label ends with Allow, Ask or Block after a colon.
- Every tier agrees with what stands in front of it
tiers.shapePassedAn Ask action has a review, a standing approval or a person's own step on every way in, an Allow action has no review or standing approval in front of it, and only red lines lead to a Block action.
- Every standing approval lists its actions on a surface
approvals.listedPassedA standing approval leads to the surface where each action it covers is listed with how to undo it.
- Every processing is well written
processing.writtenPassedA scope's processing is any, none, or a map from company ids to any or a list of known operations.
- An inner scope allows no more processing than its outer one
processing.nestedPassedA scope inside another allows no company or operation that the outer scope doesn't.
- Only a block takes a platform
platform.blocks-onlyPassedplatform belongs to a block of an implementation, never to a scope.
- Every wait is a duration on a trigger
wait.durationPassedwait is an ISO 8601 duration in weeks, days, hours, minutes or seconds, given only on a trigger.
- Every at is a path on a context
at.pathPassedat is a relative path of plain names, given only on a context.
- Only a trigger, connector or context is marked untrusted
untrusted.partsPasseduntrusted is true or false, and is true only on a trigger, connector or context.
- Only a code step cleans
cleans.code-onlyPassedcleans is true or false, and is true only on a code step, since strangers' text can steer an AI step however it's written.
- Every ref is well written
refs.writtenPassedA ref is owner/slug#id for a published workflow, or a path to a file alongside, ending .yaml, then # and the part's id.
- Only a trigger, context, connector or surface takes a ref
refs.partsPassedWorkflows share what hands work on and what both reach, so only those parts refer to another workflow's.
- No part is placed twice in an implementation
placement.oncePassedEach part sits in at most one block of each implementation.
- Every part that needs a block has one
placement.completePassedEvery part but a trigger or comment sits in a block of each implementation.
- Every ref names a part of the workflow it refers to
refs.knownPassedA ref to a workflow given with it names a part that workflow has. A ref to a workflow not given is left alone.
- Every copy agrees with the part it refers to
refs.agreePassedA part that refers to another workflow's has the same kind, label and at, and a scope with the same people and terms.
- Every shared part has one owner
refs.ownerPassedA ref names a part of another workflow, never its own, and following refs from any copy ends at the one that owns the part, rather than going round in a circle.
- No do step is decided by AI
warn.do-by-codePassedA do step should be code acting on what an earlier step decided; this warns and never fails.
- Each do step makes one change
warn.one-changePassedA do step should lead to one change, counting each outside action and surface and all contexts together as one; this warns and never fails.
- No untrusted text reaches an outside action
warn.untrusted-outside1 warningText from a part marked untrusted reaches no outside action without a review, a person's own step or a code step marked cleans to stop it; this warns and never fails.
Warnings don't fail the check.
- untrusted text from parts "asks" and "contact" reaches outside action "reply": a review, a person's own step or a code step marked cleans in between would stop it
- No context is written by more than one workflow
warn.shared-writersPassedA context that workflows given together share is written by only one of them, since each may change what another relies on; this warns and never fails.
- No connector is read by more than one workflow
warn.shared-readersPassedA connector that workflows given together share brings items in for only one of them, since each may take an item another expects; this warns and never fails.
- Every platform description value is of the right kind
description.valuesSkippedplatform is a mapping, off_for_up_to a duration, steps code or agent, agents and calls lists of company ids, and holds a list.
Skipped because no file given is a platform description.
- Every company id and path is well written
description.idsSkippedA platform description's id is a company id or owner/platforms/slug, its company ids are lower-case letters, digits and hyphens, and what it holds are relative paths.
Skipped because no file given is a platform description.