Skip to main content

Feature Status

This file describes the current maturity of PolePosition lifecycle features.

The goal is not to label features as simply "done" or "not done". Instead, it clarifies whether a feature is:

  • stable enough for normal use
  • a strong foundation but still growing
  • intentionally partial

Status Levels

  • Stable foundation: good default, broadly usable, expected to stay
  • Growing: useful and real, with a documented current scope
  • Partial by design: intentionally scoped down in the current product

Current Status

AreaStatusNotes
Project lifecycle CLI shapeStable foundationProduct is organized around start, add module, remove module, add integration, check, and db workflows rather than a one-time template.
polepos startStable foundationCore product entrypoint; generated project shape is now a major part of the product contract.
Template renderingStable foundationSupporting mechanism for lifecycle workflows; placeholder replacement and template packaging are in good shape.
Generated FastAPI structureStable foundationauth, bootstrap, api, db, domain, integrations, modules layout is now part of the product identity.
Lifecycle manifestGrowingNew projects include .poleposition.toml so package, database mode, module templates, CRUD feature options, and generated integrations do not depend only on inference.
polepos add module with standardGrowingStrong differentiator; works well, but still depends on managed marker blocks.
polepos add module with crudGrowingDatabase-backed CRUD skeleton with list/create/get/update/delete routes, repository/service layers, generated tests, and opt-in pagination, timestamps, soft delete, tenant scoping, and auth-required route protection.
polepos add module with ai-promptGrowingGood provider-agnostic foundation; adapters are scaffold-level boundaries for real provider integration.
polepos add module with api-onlyGrowingUseful lightweight module archetype for routes that do not need model, repository, or database wiring.
polepos add authGrowingOptional database-backed registration and token workflow with generated model, router, service, tests, and check coverage.
polepos remove moduleGrowingRemoves generated module scaffolds and managed wiring; supports --wiring-only for detaching managed references while preserving customized module files.
polepos add integration kafkaGrowingFirst messaging integration; producer, consumer factory, settings, env, and test double support are scaffolded.
polepos add integration rabbitmqGrowingSecond messaging integration; publisher, queue factory, settings, env, and test double support are scaffolded.
polepos add integration redisGrowingShared cache integration; async cache helper, settings, env, dependency, and test double support are scaffolded.
polepos add integration rqGrowingRedis-backed background job queue helpers, worker factory, settings, env, dependency, and test double support are scaffolded.
polepos checkStable foundationRuns core checks for project identity, generated structure, Alembic config, managed markers, starter routing, added module lifecycle wiring, orphan remnants, opt-in integration wiring, JSON output, and safe marker fixes.
polepos db ... commandsStable foundationGood migration lifecycle wrapper around Alembic, including read-only status reporting.
polepos upgradeGrowingRead-only project upgrade readiness report that summarizes CLI version, manifest state, integrations, modules, and check status.
polepos.data runtime structuresGrowingProvides dependency-free in-memory structures such as caches, sorted containers, trie, graph, priority queue, and union-find.
Alembic migration supportStable foundationGenerated projects are migration-first.
Docker and PostgreSQL workflowGrowingGood local runtime story; Docker e2e exists as opt-in smoke coverage.
Auth foundationGrowingBase auth helpers remain lightweight, and polepos add auth can now add the optional database-backed workflow.
JSON logging supportStable foundationWorks as a runtime format choice.
CORS supportStable foundationSettings-driven and production-aware.
Example scenariosGrowingScenario guides for onboarding and product understanding.

Important Clarifications

Templates

Template files are part of how PolePosition ships project and module defaults. They should not be treated as the product boundary: the CLI lifecycle around starting, growing, checking, and migrating projects is the product shape.

add module

This is one of the most important product surfaces.

It uses PolePosition-managed markers as its insertion contract. That makes generated updates predictable while keeping surrounding project code editable.

Generated modules keep workflow code in a module-local services/ package instead of a single root service.py file. That leaves room for additional service classes as a module grows without pushing logic into global folders.

remove module

This is the cleanup counterpart to add module.

It removes generated module directories, generated tests, module exports, router wiring, and database-backed module model imports. --trace previews planned removals and updates without mutating files. For AI prompt modules, the last remaining AI prompt module removal also cleans up shared LLM scaffold settings and files.

--wiring-only removes generated tests and managed router/model/export wiring without deleting the module directory. It is useful when user code inside the module has diverged but the generated lifecycle references still need cleanup.

It intentionally does not mutate database schema. Database-backed module removal should be followed by an explicit Alembic revision only when the team wants to drop or otherwise change the underlying table.

The command is conservative around custom layout drift: if it cannot recognize managed wiring well enough to remove it cleanly, it stops before deleting the module directory.

External integrations

Kafka, RabbitMQ, Redis, and RQ are opt-in integrations rather than default polepos start behavior. Kafka covers event streaming workflows, RabbitMQ covers AMQP exchange/queue messaging, Redis covers shared cache helpers, and RQ covers Redis-backed background job workers. Messaging consumers and job workers should remain explicit runtime surfaces instead of being started automatically inside the API process.

Runtime data structures

polepos.data is a runtime namespace for application code. It is intentionally separate from the internal pole_position CLI implementation package.

The first scope is dependency-free, in-memory structures that are useful inside generated projects: caches, sorted containers, ordered sets, indexed priority queues, tries, union-find, and small graph workflows. These structures are process-local. Shared or persistent state should still live in Redis, PostgreSQL, Kafka, RabbitMQ, Redis/RQ, or another reviewed infrastructure dependency.

Project checks

polepos check is now a stable lifecycle validation surface rather than a template smoke check.

It currently validates:

  • core project identity and generated structure
  • Alembic migration setup
  • PolePosition-managed markers
  • starter status router wiring
  • added module lifecycle wiring
  • orphan generated remnants after manual module deletion
  • Kafka, RabbitMQ, Redis, RQ, LLM, and auth workflow wiring

The default command is intentionally read-only and file-based. It is safe to run from local development, CI, and agent workflows without requiring a running database, message broker, LLM provider, or optional integration dependency. Use polepos check --json when CI or agent tooling needs structured issue codes, messages, and remediation text. Use polepos check --fix when safe managed markers should be restored before validation.

Auth foundation

The current auth layer covers:

  • public vs protected endpoint boundaries
  • current user resolution
  • simple role-gated authorization
  • optional generated registration and token login via polepos add auth

It is scoped away from:

  • refresh tokens
  • advanced permission systems

AI prompt modules

The current ai-prompt template is intentionally provider-agnostic. That is a strength, and it keeps provider adapters at scaffold level.

This is best understood as:

  • a solid module architecture
  • a useful orchestration pattern
  • a starting point for real provider integration