Project WatchfulAnvil Contributing Guide - rpapub/WatchfulAnvil GitHub Wiki

Contributing to Watchful Anvil

🎉 Thank you for your interest in contributing! Watchful Anvil is an early-phase initiative to make custom UiPath Workflow Analyzer rules more practical, accessible, and testable—especially in the age of LLM-generated vibe code.

Whether you're fixing a bug, writing a rule, or improving docs, you're helping build something that others can learn from and rely on.

🔰 New Contributors

New to the project? Start here:

Need help? Open a discussion or create an issue.

📂 Types of Contributions

  • ✍️ Documentation: Tutorials, fixes, new wiki pages
  • 🧪 Rules: Submit your own analyzer rules via template
  • 🛠 Tooling: CI improvements, packaging scripts, SDK experiments
  • 🧹 Refactoring: Cleanup, simplification, or modernization

🛠️ Development Setup

Start with:

git clone https://github.com/rpapub/WatchfulAnvil.git
cd WatchfulAnvil

Then follow the Getting Started Guide in the wiki.

💡 Contribution Process

  1. Fork the repository
  2. Create a feature branch: git checkout -b my-new-feature
  3. Make your changes with clear commits
  4. Open a Pull Request (PR) to the main branch
  5. Link to an issue if applicable and follow the PR template
  6. Be patient—we review manually and iteratively

📏 Code Style & Standards

  • Use consistent naming: e.g., HWR- prefix for rules
  • Follow the .editorconfig and .gitversion.yml
  • Every rule should live in its own class
  • If your rule isn't testable, it's probably not mergeable yet

ℹ️ The .editorconfig file defines formatting and naming conventions for C#, scripts, and docs. Most modern editors (VS, VS Code) enforce it automatically.

🤝 Code of Conduct

This project follows the Contributor Covenant. Be respectful, constructive, and inclusive.

🧪 In Progress?

You can still open a Draft PR! This helps spark feedback early, even before the code is finished.

Thanks for being a part of Watchful Anvil! ⚒️

Together we make automation quality real. Human-written or vibe-coded.