-
Notifications
You must be signed in to change notification settings - Fork 1
Description
This enhancement proposes the introduction of an interactive checklist feature within JP. This would allow users and the AI to create, manage, and track tasks, ensuring that multi-step processes are followed correctly. This feature could be a standalone utility or a core component of a larger "workflow" or "pipeline" engine.
Context
The core idea is to have a system for managing stateful task lists. Key features would include:
- Task Management: Creating checklists and adding tasks to them.
- State Tracking: Marking checklist items as completed, in-progress, or incomplete.
- Scoping: Defining the lifecycle and visibility of a checklist (e.g., for a single turn, an entire conversation, or globally).
- Hooks & Gates: Using the state of a checklist to control the execution of tools or other actions. For example, preventing a
git commitif the "tests passed" checklist item is not marked as complete. - Triggers: Defining actions to be performed when a checklist or a specific item reaches a certain state (e.g., when all items are completed).
A major part of this proposal is its potential integration into a future "workflow" engine. In this scenario, checklists would act as a state-passing mechanism between different nodes in a processing pipeline.
Alternatives
A simpler, initial implementation could focus only on the core checklist functionality as a user-facing tool, without the complex workflow integration. The workflow engine could be a separate, future enhancement that builds upon the basic checklist feature.
Proposed Implementation
One possible implementation could leverage a pipeline architecture, potentially using something like VRL (Vector Remap Language) for logic and verification. Here's a conceptual flow:
- A pipeline is initiated, and a named checklist is created at the start.
- The pipeline progresses through various nodes. Some nodes are LLM-powered, tasked with completing a specific job and then marking the corresponding item in the checklist.
- A subsequent "verification" node could use VRL to inspect the named checklist and confirm that all items are marked as "completed".
- If items are incomplete, the pipeline could loop back to the LLM node, re-prompting it to complete the task. This loop could have a maximum number of retries.
- To ensure integrity, checklists could be designed to be immutable. Nodes could verify the state of an item (e.g.,
code_quality.tests_passing) and then trigger an external tool (e.g., run the test suite). If the tool fails, the node could "uncheck" the item, preventing the workflow from proceeding on a false assumption.
This is just a high-level concept, and the final design should be open to discussion and refinement. The goal is to create a flexible and powerful system for managing complex, multi-step tasks within JP.
Tasks
- Design the data structure for checklists and their items.
- Implement the basic API for creating and modifying checklists.
- Define and implement the scoping rules (turn, conversation, global).
- Brainstorm and design the hook/gate mechanism for tools.
- Draft a more detailed proposal for the workflow engine integration.