name: google_oss_management description: enforces Google-grade open source standards for the Lilith project, handling Rust/Python testing, changelogs, and version control with strict human confirmation. version: 1.1.0
Google-Grade Open Source Project Management (Lilith Edition)
This skill enforces strict engineering rigor for the Lilith project. It mandates that no code is committed without passing the specific CI workflows defined in .github/workflows/ci.yml.
When to use this skill
- Ready to Commit: When the user wants to commit changes, push code, or release a new version.
- Workflow Updates: When the user modifies
.github/workflows/ci.ymlor build configurations (lilith-zero/Cargo.toml,sdk/pyproject.toml). - Documentation: When generating
CHANGELOG.mdupdates based on recent diffs. - Quality Gate: When requested to "finalize" or "polish" a feature for merging.
How to use it
1. Pre-Commit Workflow Validation (The "Green Build" Rule)
Before generating any commit messages, you MUST ask the user to run the relevant verification commands. Do not assume pass.
A. Rust Core Changes (lilith-zero/)
If changes touch lilith-zero/src, lilith-zero/Cargo.toml, or lilith-zero/tests:
- Format & Lint:
cd lilith-zero; cargo fmt --all -- --checkcd lilith-zero; cargo clippy --all-targets --all-features -- -D warnings
- Test:
cd lilith-zero; cargo test --all-features
- Audit (Optional):
cd lilith-zero; cargo audit
B. Python SDK Changes (sdk/)
If changes touch sdk/, sdk/src, or pyproject.toml:
- Lint:
ruff check sdk/src/lilith_zero sdk/tests
- Type Check:
mypy sdk/src/lilith_zero --strict --ignore-missing-imports
- Test:
cd sdk; python -m pytest tests -v
C. Integration/Full System
If changes affect the interaction between Rust and Python:
- Build Rust Binary:
cd lilith-zero; cargo build --release- Note: Set env var:
export LILITH_ZERO_BINARY_PATH="lilith-zero/target/release/lilith-zero"
- Run Integration Test:
- Sandbox Verification:
cd lilith-zero; cargo run --example sandbox_check
2. Semantic Changelog Generation
Generate a technically accurate, compact changelog entry based on the diff.
- Read Diffs: Analyze
git diff --staged. - Categorize: Group changes into
Features,Fixes,Performance,Breaking Changes, andInternal. - Format: Use the "Keep a Changelog" standard (Markdown).
- Format:
- **[Scope]**: <Technical Description> (Reference to files)
- Format:
- Draft Content: Present the draft entry to the user for approval before writing to
CHANGELOG.md(root).
3. Atomic Commit Protocol (Human-in-the-Loop)
Generate descriptive, conventional commit messages.
- Generate Message: Create a commit message following the Conventional Commits specification:
- Format:
<type>(<scope>): <description> - Example:
feat(middleware): enforce strict type checking in python bindings - Rules: Imperative mood, max 72 chars header, detailed body if necessary.
- Format:
- Command Construction: Prepare the exact git commands.
git add <specific_files>git commit -m "<message>"git push origin <branch>
- Mandatory Confirmation:
- Display the exact commands and the commit message.
- Ask: "Do you authorize these specific commands?"
- Wait for explicit "Yes" or "Execute" from the user.
Examples
Scenario: User modifies Rust Policy Engine
User: "I updated policy_validator.rs in the core."
Agent Response:
"I see changes in lilith-zero/src/policy/policy_validator.rs.
- Verification Required:
cd lilith-zero; cargo fmt --all -- --check; cargo clippy --all-targets --all-features -- -D warnings; cargo test --all-features
- Changelog Draft:
### Fixed- **core/policy**: Strengthened validation logic inpolicy_validator.rsto reject ambiguous rules.
- Proposed Commit:
fix(core): reject ambiguous rules in policy validatorgit add lilith-zero/src/policy/policy_validator.rsgit commit -m "fix(core): reject ambiguous rules in policy validator"Do you authorize the test run and subsequent commit?"