claude_native/rules/project_specific/
mod.rs1pub mod monorepo;
2pub mod micro_repo;
3pub mod mobile;
4pub mod frontend;
5pub mod backend;
6pub mod iac;
7pub mod serverless;
8pub mod ml;
9pub mod codegen;
10pub mod polyglot;
11pub mod legacy;
12pub mod doc_site;
13pub mod game_dev;
14
15use crate::rules::Rule;
16
17pub fn project_specific_rules() -> Vec<Box<dyn Rule>> {
19 vec![
20 Box::new(monorepo::RootClaudeMdThin),
22 Box::new(monorepo::PerPackageClaudeMd),
23 Box::new(monorepo::WorkspaceOutputsIgnored),
24 Box::new(monorepo::PathScopedRulesPerPackage),
25 Box::new(monorepo::PerPackageTestCommands),
26 Box::new(monorepo::WorkspaceDepsNavigable),
27 Box::new(monorepo::SharedToolingConfig),
28 Box::new(micro_repo::ReadmeIsPrimary),
30 Box::new(micro_repo::ComprehensiveTests),
31 Box::new(micro_repo::ManifestComplete),
32 Box::new(micro_repo::ExamplesExist),
33 Box::new(mobile::PlatformBuildDirsIgnored),
35 Box::new(mobile::GeneratedCodeIgnored),
36 Box::new(mobile::PlatformCommands),
37 Box::new(mobile::BinaryAssetsExcluded),
38 Box::new(mobile::LightweightVerification),
39 Box::new(frontend::BuildCacheIgnored),
41 Box::new(frontend::SourceMapsIgnored),
42 Box::new(frontend::EnvExampleExists),
43 Box::new(frontend::TypeCheckBeforeBuild),
44 Box::new(backend::MigrationHistoryManageable),
46 Box::new(backend::DatabaseFilesIgnored),
47 Box::new(backend::VirtualEnvsIgnored),
48 Box::new(backend::DataAccessDocumented),
49 Box::new(backend::ApiSpecExists),
50 Box::new(backend::LogFilesIgnored),
51 Box::new(iac::StateFilesBlocked),
53 Box::new(iac::PlanOutputFiltered),
54 Box::new(iac::ProviderCacheIgnored),
55 Box::new(iac::SecretsExternal),
56 Box::new(iac::ModuleConventions),
57 Box::new(serverless::DeployArtifactsIgnored),
59 Box::new(serverless::FunctionsFocused),
60 Box::new(serverless::TestEventsExist),
61 Box::new(serverless::NoCloudCreds),
62 Box::new(ml::NotebooksNotPrimary),
64 Box::new(ml::ModelFilesIgnored),
65 Box::new(ml::DatasetFilesIgnored),
66 Box::new(ml::ExperimentWorkflowDocumented),
67 Box::new(ml::RequirementsPinned),
68 Box::new(codegen::GeneratedDirsIgnored),
70 Box::new(codegen::EditSpecsNotGenerated),
71 Box::new(codegen::RegenCommandDocumented),
72 Box::new(codegen::AutoRegenHook),
73 Box::new(polyglot::PerLanguageClaudeMd),
75 Box::new(polyglot::RootClaudeMdAgnostic),
76 Box::new(polyglot::IndependentBuildTest),
77 Box::new(polyglot::AllRuntimesIgnored),
78 Box::new(legacy::DocumentsTheMess),
80 Box::new(legacy::CorrectPatternsIdentified),
81 Box::new(legacy::TestsForModifiedCode),
82 Box::new(legacy::DeadCodeFlagged),
83 Box::new(legacy::MegaFilesDocumented),
84 Box::new(doc_site::BuildOutputIgnored),
86 Box::new(doc_site::MarkdownSourceFocus),
87 Box::new(doc_site::NavigationDocumented),
88 Box::new(game_dev::BinaryAssetsIgnored),
90 Box::new(game_dev::EditorMetadataIgnored),
91 Box::new(game_dev::ScriptsArePrimary),
92 Box::new(game_dev::GameLogicTests),
93 ]
94}