Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,11 +60,19 @@ This repository is a [`uv` workspace](https://docs.astral.sh/uv/concepts/project
- `/admin` - Administrative API endpoints for the web dashboard
- `/celery` - Background worker processes and task definitions
- `/core` - Legacy miscellaneous components (**deprecated - no new code**)
- Exception: `/core/classifier` is the active home of classification logic (the BISAC
rulesets and code table, keyword matching, `WorkClassifier`). It has no replacement
elsewhere in the tree, so classification changes belong here.
- `/customlists` - CLI tools for managing custom book collections
- `/data_layer` - Pydantic models for content import and validation
- `/feed` - OPDS (Open Publication Distribution System) feed generation
- `/integration` - Third-party service integrations and content provider APIs
- `/scripts` - Legacy CLI utilities (**deprecated - no new code**)
- `/scripts` - Legacy CLI utilities (**deprecated - put new logic in `/celery/tasks`**)
- The package is deprecated for *logic*, not for entry points. A thin `Script` subclass
here plus a `bin/` wrapper is still the only supported way to run something on demand,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 On-demand CLI claim is overbroad

“The only supported way to run something on demand” overlooks bin/customlist_import and bin/customlist_export, which invoke their dedicated implementations directly without a Script subclass or Celery dispatch. This wording could prompt the same unnecessary migration requests this clarification aims to prevent. Describe this as a supported general-purpose pattern, or explicitly preserve the specialized custom-list CLI exception.

Suggested change
here plus a `bin/` wrapper is still the only supported way to run something on demand,
here plus a `bin/` wrapper is still a supported way to run something on demand,

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

and is still the expected pattern for dispatching a Celery task by hand. There is no
replacement framework: `palace-startup-task` is the only console script the project
ships, and it resolves into this package.
- `/search` - OpenSearch integration and indexing logic
- `/service` - Dependency injection container and service layer
- `/sqlalchemy` - Database models and schema definitions
Expand Down
Loading