forge-jobs: Background jobs
Engine: Forge native
Purpose
Inspect queued and scheduled work for durability, idempotency, retries, poison messages, and operability.
Deterministic runtime composition
Before loading any provider procedure, run:
Resolve ../../runtime/cli/src/composition-entry.js relative to this SKILL.md, then run:
node "<resolved-absolute-runner-path>" jobs compose --workflow audit --root "<repository-root>" --dry-run --json
Add one repeatable --request <provider-or-source> flag for each explicit user request. Add
--condition <task-condition> or --risk-surface <surface> only for a task fact you directly
proved; never infer one from generic wording. The command above is the default for this
audit-oriented module; for implementation use --workflow build, and for a fix, retest, or
release gate use --workflow fix, verify, or ship respectively. Read the JSON response,
keep the Forge contract at index zero, and resolve paths against the absolute runtime_root
reported in that response. Read eager[].runtimePath when entering the module. The full
selected[] list is availability/provenance; load only deferred[].runtimePath when the task
reaches that concern, in tier order. Refuse any path that escapes the root. Respect every reported
suppression and context budget. If missing is non-empty, stop and report the installation as
damaged; do not improvise a prose fallback. The runner and specialist content may live in a plugin
cache or global installation; never assume they are inside the audited repository.
Resolve and read ../fullstack-forge/references/shared/module-contract.md (applicability,
execution, mutation, verification, completion) and
../fullstack-forge/references/shared/evidence-rules.md (statuses, standards, tools, findings via
../fullstack-forge/references/PROTOCOL.md) relative to this module SKILL.md before reporting.
Never hide failed checks or claim that an operation ran when it did not.
Automatic activation signals
Activate when a request or direct repository evidence involves background jobs, when
the user explicitly names forge-jobs, or when discovery proves an applicable boundary.
- Queues, workers, cron, scheduled functions, and outbox consumers
When not to activate
- Applications with no asynchronous or scheduled execution
Automated support
Relevant discovery inputs are:
- queue and scheduler configuration
- producers and consumers
- job tests
Deterministic support, bounded evidence only:
Agent inspection procedure
- Inventory queues, workers, and scheduled jobs with their triggers, and trace one job from enqueue to completion including the failure path.
- Verify idempotency: determine what happens when the same job runs twice, concurrently, or after a partial failure.
- Inspect retry policy, backoff, limits, and the destination of permanently failing jobs (dead-letter or silent loss).
- Check transaction boundaries: whether enqueue happens atomically with the state change that requires it (outbox or equivalent).
- Verify observability: how an operator would find a stuck queue, a poison message, or a job that never ran, and how deploys interact with in-flight jobs.
Manual inspection requirements:
- Review operational replay and poison-message runbooks
- Confirm provider retention and retry settings outside the repository
Stack-specific guidance:
- Use provider-native acknowledgement and visibility-timeout semantics
Evidence to collect
Standards used as criteria:
- CloudEvents concepts
- NIST SSDF
Common production failures
- Trace enqueue-to-effect flow and delivery guarantees
- Inspect idempotency keys, leases, timeouts, retries, jitter, dead-letter handling, ordering, concurrency, and payload versioning
- Verify transaction boundaries, outbox/inbox behavior, observability, replay, and shutdown
Missing-control checks
Each item needs direct evidence or one reasoned status.
- Job idempotency
- Duplicate execution
- Retry limits
- Exponential backoff
- Dead-letter handling
- Timeouts
- Scheduling
- Concurrency
- Ordering
- Partial failures
- Transaction boundaries
- Poison messages
- Cancellation
- Progress reporting
- Safe deployment while jobs run
- Job observability
- Queue saturation
- Backpressure
- Email, invoice, image, reconciliation, report, notification, and import jobs
Commands and tools
- Run
forge jobs audit --json or fullstack-forge jobs audit --json when
an explicit audit is requested and the CLI is installed. Normal feature work does not require it.
Safe fixes
- Add bounded retry metadata, structured job logging, and payload validation
- Add tests for duplicate delivery
Approval-required changes
- Introducing a queue or changing delivery and ordering semantics
Verification
- Deliver the same job twice and observe one durable outcome
- Force failure through retry and dead-letter paths
Completion contract
Follow fullstack-forge/references/shared/completion.md and the limitations below.
Known limitations
- Managed queue policy is NOT_VERIFIED without configuration output
1---2name: forge-jobs-33description: Inspect queued and scheduled work for durability, idempotency, retries, poison messages, and operability.4---56# forge-jobs: Background jobs78Engine: Forge native910## Purpose1112Inspect queued and scheduled work for durability, idempotency, retries, poison messages, and operability.131415## Deterministic runtime composition1617Before loading any provider procedure, run:1819Resolve `../../runtime/cli/src/composition-entry.js` relative to this `SKILL.md`, then run:2021`node "<resolved-absolute-runner-path>" jobs compose --workflow audit --root "<repository-root>" --dry-run --json`2223Add one repeatable `--request <provider-or-source>` flag for each explicit user request. Add24`--condition <task-condition>` or `--risk-surface <surface>` only for a task fact you directly25proved; never infer one from generic wording. The command above is the default for this26audit-oriented module; for implementation use `--workflow build`, and for a fix, retest, or27release gate use `--workflow fix`, `verify`, or `ship` respectively. Read the JSON response,28keep the Forge contract at index zero, and resolve paths against the absolute `runtime_root`29reported in that response. Read `eager[].runtimePath` when entering the module. The full30`selected[]` list is availability/provenance; load only `deferred[].runtimePath` when the task31reaches that concern, in tier order. Refuse any path that escapes the root. Respect every reported32suppression and context budget. If `missing` is non-empty, stop and report the installation as33damaged; do not improvise a prose fallback. The runner and specialist content may live in a plugin34cache or global installation; never assume they are inside the audited repository.353637Resolve and read `../fullstack-forge/references/shared/module-contract.md` (applicability,38execution, mutation, verification, completion) and39`../fullstack-forge/references/shared/evidence-rules.md` (statuses, standards, tools, findings via40`../fullstack-forge/references/PROTOCOL.md`) relative to this module `SKILL.md` before reporting.4142Never hide failed checks or claim that an operation ran when it did not.4344## Automatic activation signals4546Activate when a request or direct repository evidence involves background jobs, when47the user explicitly names `forge-jobs`, or when discovery proves an applicable boundary.4849- Queues, workers, cron, scheduled functions, and outbox consumers5051## When not to activate5253- Applications with no asynchronous or scheduled execution5455## Automated support5657Relevant discovery inputs are:5859- queue and scheduler configuration60- producers and consumers61- job tests6263Deterministic support, bounded evidence only:6465- `inspect-routes`6667## Agent inspection procedure68691. Inventory queues, workers, and scheduled jobs with their triggers, and trace one job from enqueue to completion including the failure path.702. Verify idempotency: determine what happens when the same job runs twice, concurrently, or after a partial failure.713. Inspect retry policy, backoff, limits, and the destination of permanently failing jobs (dead-letter or silent loss).724. Check transaction boundaries: whether enqueue happens atomically with the state change that requires it (outbox or equivalent).735. Verify observability: how an operator would find a stuck queue, a poison message, or a job that never ran, and how deploys interact with in-flight jobs.7475Manual inspection requirements:7677- Review operational replay and poison-message runbooks78- Confirm provider retention and retry settings outside the repository7980Stack-specific guidance:8182- Use provider-native acknowledgement and visibility-timeout semantics8384## Evidence to collect8586Standards used as criteria:8788- CloudEvents concepts89- NIST SSDF9091## Common production failures9293- Trace enqueue-to-effect flow and delivery guarantees94- Inspect idempotency keys, leases, timeouts, retries, jitter, dead-letter handling, ordering, concurrency, and payload versioning95- Verify transaction boundaries, outbox/inbox behavior, observability, replay, and shutdown9697## Missing-control checks9899Each item needs direct evidence or one reasoned status.100101- Job idempotency102- Duplicate execution103- Retry limits104- Exponential backoff105- Dead-letter handling106- Timeouts107- Scheduling108- Concurrency109- Ordering110- Partial failures111- Transaction boundaries112- Poison messages113- Cancellation114- Progress reporting115- Safe deployment while jobs run116- Job observability117- Queue saturation118- Backpressure119- Email, invoice, image, reconciliation, report, notification, and import jobs120121## Commands and tools122123- Run `forge jobs audit --json` or `fullstack-forge jobs audit --json` when124 an explicit audit is requested and the CLI is installed. Normal feature work does not require it.125126## Safe fixes127128- Add bounded retry metadata, structured job logging, and payload validation129- Add tests for duplicate delivery130131## Approval-required changes132133- Introducing a queue or changing delivery and ordering semantics134135## Verification136137- Deliver the same job twice and observe one durable outcome138- Force failure through retry and dead-letter paths139140## Completion contract141142Follow `fullstack-forge/references/shared/completion.md` and the limitations below.143144## Known limitations145146- Managed queue policy is NOT_VERIFIED without configuration output