Jump to a problem, path or page
Jump to a problem, path or page
Updates as you edit. Run the review to record it; passing every check completes the problem.
Not yet passed: Caller responsibility
Add Caller and define its responsibility.
Not yet passed: Search service responsibility
Add Search service and define its responsibility.
Not yet passed: Query predicate responsibility
Add Query predicate and define its responsibility.
Not yet passed: Traversal responsibility
Add Traversal and define its responsibility.
Not yet passed: Directory provider responsibility
Add Directory provider and define its responsibility.
Not yet passed: Search budget responsibility
Add Search budget and define its responsibility.
Not yet passed: Caller → Search service
A directed path must connect Caller to Search service. Arrows represent requests, dependencies, or event flow.
Not yet passed: Search service → Query predicate
A directed path must connect Search service to Query predicate. Arrows represent requests, dependencies, or event flow.
Not yet passed: Search service → Traversal
A directed path must connect Search service to Traversal. Arrows represent requests, dependencies, or event flow.
Not yet passed: Traversal → Directory provider
A directed path must connect Traversal to Directory provider. Arrows represent requests, dependencies, or event flow.
Not yet passed: Traversal → Search budget
A directed path must connect Traversal to Search budget. Arrows represent requests, dependencies, or event flow.
Not yet passed: How do you add a new metadata filter?
Not yet passed: How should NOT(A) behave?
Not yet passed: What bounds a search over an enormous tree?
Not yet passed: Interfaces and invariants
Write at least 80 characters describing concrete operations, inputs, outputs, state and errors. This check measures completeness, not semantic correctness.
Not yet passed: Trade-offs and failure cases
Write at least 80 characters about alternatives, failure handling and edge cases. Review the reasoning yourself using the reference discussion.
Rule-based educational feedback. Notes are checked by length only; topology checks confirm directed reachability. These checks do not validate semantics, latency, reliability or every valid design.
Build a pure predicate expression tree over normalized entries and an iterative traversal engine over a provider interface. Explicit budgets and partial-result status bound work and make failures visible. Define Entry metadata and pure predicates. And/Or short-circuit, Not negates a predicate result, and leaf predicates specify their supported entry types and units. Use an explicit stack or iterator for traversal rather than an unbounded recursive stack. A provider lists child metadata; the search layer never mutates storage. Before each visit, check cancellation and depth/visit/result budgets. This exercise skips link traversal; providers supply stable identities and repeated directory identities are skipped defensively. Permission/provider errors are collected and traversal continues under a skip-and-report policy. Return results plus COMPLETE, PARTIAL, CANCELLED or BUDGET_EXCEEDED status; ordering follows a documented provider/sort policy.
There is no single correct diagram. Explain where yours differs and which requirement justifies it.