Skip to content

Commit c61baf4

Browse files
authored
Merge branch 'master' into update/cisco-etd-update
2 parents 82e23c4 + 310e2c1 commit c61baf4

940 files changed

Lines changed: 275748 additions & 326540 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 23 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,26 @@ When reviewing pull requests, follow these rules strictly.
3939
3. Verify all required fields are present and properly formatted
4040
4. Do NOT use general instructions for these files - only use the huntingqueries custom instructions
4141

42+
### For Playbooks Files (`Playbooks/**/*.json`, `Playbooks/**/README.md`, `Solutions/**/Playbooks/**/*.json`, `Solutions/**/Playbooks/**/README.md`)
43+
1. **LOAD and USE:** `.github/instructions/playbooks.instructions.md`
44+
2. Apply ALL guidelines from that file
45+
3. Validate ARM template structure, metadata fields, parameters, and README requirements from that custom instruction file
46+
4. Check all required sections in README.md and ARM template metadata
47+
5. Do NOT use general instructions for these files - only use the playbooks custom instructions
48+
49+
### For Workbooks Files (`Workbooks/*.json`, `Solutions/**/Workbooks/*.json`)
50+
1. **LOAD and USE:** `.github/instructions/workbook.instructions.md`
51+
2. Apply ALL guidelines from that file
52+
3. Validate workbook JSON structure, required fields, items array, and metadata requirements from that custom instruction file
53+
4. Check all required top-level fields and item structure validation
54+
5. Do NOT use general instructions for these files - only use the workbook custom instructions
55+
56+
### For Parser Files (`Parsers/**/*.yaml`, `Parsers/**/*.yml`, `Solutions/**/Parsers/**/*.yaml`, `Solutions/**/Parsers/**/*.yml`)
57+
1. **LOAD and USE:** `.github/instructions/parsers.instructions.md`
58+
2. Apply ALL guidelines from that file
59+
3. Validate parser syntax, KQL accuracy, YAML structure, and all required fields from that custom instruction file
60+
4. Do NOT use general instructions for these files - only use the parsers custom instructions
61+
4262
---
4363

4464
## Files and folders to ignore
@@ -51,81 +71,7 @@ If files from these paths appear in the PR, completely skip them and do not gene
5171

5272
## Solutions Analyzer Tools
5373

54-
When working with the Solutions Analyzer tools in `Tools/Solutions Analyzer/`:
55-
56-
### Output Locations
57-
58-
There are THREE different output scenarios - **never confuse them**:
59-
60-
1. **Default (development):** CSVs are written to `Tools/Solutions Analyzer/` in the current branch
61-
- This is the normal case when developing/testing
62-
- **Never generate documentation here**
63-
64-
2. **Output worktree (publishing CSVs):** `C:\Users\ofshezaf\GitHub\Azure-Sentinel-solution-analyzer-output\Tools\Solutions Analyzer`
65-
- Only use this when **specifically requested** to "publish CSVs to the output branch"
66-
- This is a separate git worktree for the CSV output branch
67-
- **Only CSVs go here, never documentation**
68-
69-
3. **Documentation output:** `C:\Users\ofshezaf\GitHub\sentinelninja\Solutions Docs`
70-
- This is where generated markdown documentation goes
71-
- This is in a **separate repository** (sentinelninja)
72-
- Empty the target folder before generating new docs
73-
74-
### Key Rules
75-
76-
- **Never generate docs locally** in the Azure-Sentinel repository
77-
- **Generate docs only in the sentinelninja repo** when asked or needed
78-
- **For official CSV releases**, generate CSVs **only** in the solution analyzer output worktree
79-
- Always use `--output-dir` flag when running `generate_connector_docs.py`
80-
81-
### Running Scripts
82-
83-
#### Mapper Script
84-
```powershell
85-
cd "Tools/Solutions Analyzer"
86-
python map_solutions_connectors_tables.py
87-
```
88-
89-
**Note:** Do NOT truncate or filter the output (e.g., do not pipe through `Select-Object`). The script prints timestamped progress messages to the console that the user needs to see. Run with `isBackground: false` and `timeout: 0` so the full output is visible.
90-
91-
#### Documentation Generator
92-
```powershell
93-
python generate_connector_docs.py --output-dir "C:\Users\ofshezaf\GitHub\sentinelninja\Solutions Docs" --skip-input-generation
94-
```
95-
96-
**IMPORTANT:** Never run without `--output-dir` flag.
97-
98-
**IMPORTANT:** Do NOT truncate or filter the output (e.g., do not pipe through `Select-Object`). Run with `isBackground: false` and `timeout: 0` so the full output is visible to the user.
99-
100-
**IMPORTANT:** Always use `--skip-input-generation` unless you specifically need to regenerate the input CSVs (mapper + collect_table_info). Without this flag, the doc generator will re-run those scripts automatically, which is slow and unnecessary if the CSVs are already up-to-date.
101-
102-
**IMPORTANT:** Run the mapper script before generating docs if:
103-
- The mapper script itself was modified, OR
104-
- Any override YAML file in the `overrides/` folder was modified (including adding, editing, or removing `additional_connectors` entries), OR
105-
- You specifically need to refresh the CSV data, OR
106-
- You are explicitly asked to run the mapper
107-
108-
### Caching and Logging
109-
110-
- **Cache:** `.cache/` folder for analysis caching
111-
- **Logs:** `.logs/` folder for log files
112-
113-
**Log file:** `Tools/Solutions Analyzer/.logs/map_solutions_connectors_tables.log`
114-
115-
Use `--force-refresh` with these types when modifying analysis logic:
116-
- `asim` - ASIM parser analysis
117-
- `parsers` - Non-ASIM parser analysis
118-
- `solutions` - Solution content analysis
119-
- `standalone` - Standalone content item analysis
120-
- `marketplace` - Marketplace availability check (requires network)
121-
- `tables` - Table reference info (requires network)
122-
123-
### Script Documentation
124-
125-
**Before updating a script:** Always review the relevant script documentation in `Tools/Solutions Analyzer/docs/` first.
74+
When working with the Solutions Analyzer tools in `Tools/Solutions Analyzer/`, follow the dedicated skills under `.github/skills/`:
12675

127-
**When updating a script**, update the corresponding script doc to reflect:
128-
- Any script parameters added or changed
129-
- Any output file changes, including changes to CSV files (new columns, renamed columns, removed columns)
130-
- Any changes to analysis methods or logic
131-
- Update the primary readme.md if needed and add the change to the change log. Do not add a version if the previous version as manifested by the changelog, was not committed yet.
76+
- **`run-solution-analyzer`** — running the mapper, doc generator, ASIM browser, and `upload_to_kusto`; output locations; force-refresh and caching.
77+
- **`update-solution-analyzer`** — modifying scripts, updating `script-docs/`, README changelog rules, CSV output sync with `upload_to_kusto.py`, and static/interactive index plus markdown/HTML entity page synchronization.

0 commit comments

Comments
 (0)