Skip to content

Latest commit

 

History

History
38 lines (38 loc) · 2.88 KB

File metadata and controls

38 lines (38 loc) · 2.88 KB

Contributing to std::slop

We appreciate your interest in contributing to std::slop! To maintain a focused and agent-driven development workflow, we have a contribution model.

No Direct Pull Requests (PRs)

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.

Prompt-Based Contributions

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.

Suggested Prompt Request Format

Effective prompt requests will be:

  1. Generated by a std::slop Planner Persona: If possible, use std_slop to generate a detailed, step-by-step plan. The agent will typically activate its internal planner skill 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.
  2. 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.

Example Prompt Request Structure:

**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.

Coding Standards

Security

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));

How to Submit a Prompt Request

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.