StackGuardian / StackGuardian/tirith

feat(core): decide what "nothing in scope" means — `no_match_result` and exit codes

Open
#297 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement need-discussion
Dominant language
Python
Stars
165
Forks
42
Avg merge
1d 3h
Merged PRs (30d)
11

Description

final_result: None exits 1, deliberately ("None is not a pass"). But every scoping feature turns
"not applicable" into exactly that skip: no in-scope resource (resource_filter), template lacks
the type (json member selection), no rows of a table (cloud snapshots). "No postgres in this plan"
currently becomes a red CI job — the false positive those features exist to remove.

Proposal. A no_match_result: "pass" | "skip" provider argument (default skip = today's
behaviour; packs may set pass), or an explicit report-only class. This is a product decision that
gates "resource_filter", "type-scoped member reads" and the cloud-snapshot convention — decide it
before any of them merge. Label: need-discussion.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the core handling of final_result: None and the provider argument definitions, then trace how resource_filter, type-scoped member reads, and cloud-snapshot results represent no matches. Done means the project has a decided, documented convention for pass versus skip that unblocks those features.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.