Add failure scenarios: memory leak/OOM, retry storm, clock skew
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- Half a day
- Newbie friendliness
- 82/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Quiet
- Tech stack
- python
- Domain
- observability, testing
Research direction
Read an existing scenario in backend/app/seeds/scenarios.py and the helpers in backend/app/seeds/builder.py. Choose one suggested failure mode, then run the relevant eval flow if available to verify the fixed timestamps, causal story, plausible decoy, and ground-truth root cause. Done means one reproducible scenario is added and eval.py can score it.
Written by the indexing model from the issue text.
Description
From the "nice-to-haves" list in FUTURE.md:
More scenarios (memory leak / OOM, retry storm, clock skew, partial outage).
Scenarios today are the main way to exercise the tool, and there are only a handful. Each new one makes the eval harness more meaningful and gives the demo more range.
This is a good first contribution: it is data and builder code only, needs no frontend work, and needs no ANTHROPIC_API_KEY to write (only to run the analysis at the end).
Where
backend/app/seeds/scenarios.py, with helpers in backend/app/seeds/builder.py. Follow an existing scenario as a model.
What makes a good scenario
- A real causal story. The spans and logs should let a careful engineer reach the right answer, so the tool can be judged on whether it does.
- A plausible decoy. A failure with exactly one suspicious signal is not interesting; good incidents have a red herring.
- Pinned timestamps. Use the fixed base epoch like the existing scenarios — reproducibility is deliberate.
- A ground-truth root cause, so
eval.pycan score against it.
Suggested, pick one
memory leak / OOM · retry storm · clock skew · partial outage · connection-pool exhaustion · cache stampede
One scenario per PR, please — easier to review, and easier to discuss whether the causal story reads correctly.
- Dominant language
- Python
- Stars
- 2
- Forks
- 1
- Avg merge
- 8h 8m
- Merged PRs (30d)
- 3
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from naamanu/causality
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
enhancement help wanted
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
enhancement help wanted
Difficulty 4/5 3-5 days Newbie friendliness 68/100
All issues in naamanu/causality
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100