Critique & Future Work

v0.3.0 Snapshot — This page tracks the project's intellectual honesty: what critiques have been raised, what's been addressed, and what remains.

Critique Round 1 — Initial Self-Assessment (v0.1.0)

These concerns were identified during the initial development phase.

ConcernResolution
No CLI tooling✅ CLI with discover, recommend, explore subcommands
AGPL-only licensing✅ Apache-2.0 with CLA (v0.2.0)
Sparse documentation✅ User guide, book, API reference, cookbook
Feature-flag complexity✅ Feature flag guide with common combinations
Performance benchmarks missing✅ criterion benchmarks for 4 paths × 3 Grassmannians (v0.2.0)
No deployment examples✅ Axum middleware example (v0.2.0)
CRDT staleness unguardedset_max_staleness(), staleness_ms(), is_converged_with() (v0.2.0)

Critique Round 2 — Proserpina Panel (v0.3.0)

A 5-critic LLM panel (Devil's Advocate, Methodologist, Red Team, Domain Expert, Editor) cross-examined the README, book introduction, and mathematical concepts page. 31 findings total: 5 blockers, 10 major, 11 minor, 5 info.

Blockers — Addressed

FindingResolution
No formal mapping from access control to Schubert geometryDistributed Game Sync — formal derivation from game state to Grassmannian
"Configuration" count never operationally defined✅ Configuration = valid game state reconciliation (game sync §4)
Impossibility detection claim unsubstantiated✅ σ₂·σ₁₁ = 0 = combat mode + safe zone (game sync §3). Boolean AND false positive documented.
Algebraic identities mislabeled as security properties✅ Relabeled "algebraic identities" with caveat that security relevance depends on domain mapping
Scaling unaddressed (#P-hardness)✅ Game sync §6: complexity acknowledged, practical bounds given (10K players × Gr(2,4) = 2ms)

Major — Addressed

FindingResolution
No threat modelThreat Model — adversary capabilities, security properties
Missing flag structure explanationFlag Structure — reference flag = clearance hierarchy
No Rust code in introduction✅ Quick start code block added
Fragile dependencies (pre-1.0 siblings)✅ Dependency table clarifies optional vs required

Minor/Info — Addressed

FindingResolution
Notation issues (σ vs partition, "point class")✅ Notation guide added to concepts
Doc structure (What's New interrupts math)✅ Moved to end of README
Adversarial concerns (DoS, model injection)Adversarial Concerns
Non-identifiability (who has access?)✅ Capacity vs occupancy explanation in threat model
Audit trail (commutativity eliminates temporal)✅ Semantic commutativity ≠ temporal audit discussed
Missing prior art references✅ References added to concepts page

Deferred to arXiv Preprint or Future Release

FindingWhy Deferred
Empirical comparison to Cedar/OPA/CasbinNeeds benchmark implementation against real policy engines
Trust calibration (formal model)Formal mathematical work — belongs in the paper
Cross-domain intersection derivationNeeds flag variety embedding proof — paper material
Rate limiting geometric justificationNeeds empirical data connecting intersection numbers to throughput
Verification artifacts (proofs, certificates)Depends on Karpal proof publication pipeline
Composition associativity proofFormal category-theoretic proof — paper material

Ongoing Challenges

Learning Curve

Schubert calculus is not standard security engineering knowledge. We recommend:

Persistence

No built-in storage layer. All state is in-memory. Use serde serialization + your database of choice for persistence. Future work: SQLite/PostgreSQL backends.

Real-World Adoption

Schubert is a new project. We welcome:

  • Production deployment reports
  • Bug reports and edge cases
  • Integration examples with common stacks (PostgreSQL, Redis, Kubernetes)

Future Directions

See the full Roadmap for speculative directions including:

  • Persistent backends (SQLite, PostgreSQL)
  • gRPC policy distribution protocol
  • Policy diff and incremental updates
  • Visualization of Schubert varieties
  • Integration with OpenFGA / Rego policy languages
  • Empirical comparison to Cedar, OPA, Casbin, Oso
  • Formal trust calibration model