We appreciate your interest in contributing to std::slop! To maintain a focused and agent-driven development workflow, we have a contribution model.
We do not accept traditional Pull Requests for code changes. All code modifications are handled internally to ensure consistency with our agent-driven development philosophy.
Instead of code, we welcome contributions in the form of PRs aka prompt requests. These prompts should clearly articulate a desired feature, bug fix, or improvement.
Effective prompt requests will be:
- Generated by a
std::slopPlanner Persona: If possible, usestd_slopto generate a detailed, step-by-step plan. The agent will typically activate its internalplannerskill automatically when asked to "plan" a feature. Alternatively, you can manually activate it via/skill activate planner. The USER GUIDE file has more details on skills and orchestration. - Detailed and Step-by-Step: The prompt should include a clear, actionable plan outlining the exact steps required to implement the desired change. This plan should break down the task into manageable components, ideally mirroring how an AI agent would approach the problem.
**Feature Request: Implement XYZ functionality**
As generated by `std_slop` with `planner` skill activated:
**Plan:**
1. **Analyze requirements**: Review existing ABC module to understand integration points.
2. **Create new file `src/foo/xyz.cc`**: Define `XyzProcessor` class with method `process_data(data)`.
3. **Implement `process_data`**: Add logic for data transformation and validation.
4. **Add unit tests `src/foo/xyz_test.cc`**: Cover edge cases and successful execution.
5. **Integrate with `main_app.cc`**: Call `XyzProcessor` from `main_app_loop()`.
6. **Update documentation**: Add usage details to `README.md`.
**Reasoning:**
Implementing XYZ functionality will improve system performance by 15% during data ingestion, addressing user feedback from Issue #123. The plan prioritizes modularity and testability.
To prevent SQL injection, never use string concatenation or absl::Substitute with user-supplied values when interacting with the database. Always use the parameterized versions of Database::Query and Database::Execute.
Example:
// Correct
db_->Query("SELECT * FROM messages WHERE session_id = ?;", {session_id});
// Incorrect
db_->Query(absl::Substitute("SELECT * FROM messages WHERE session_id = '$0';", session_id));Please open a new issue on our GitHub repository and provide your prompt request in the description. If your plan is clear and aligns with the project's goals, we will consider implementing it using our std_slop agent.