Skip to content

Commit bee9da0

Browse files
authored
Merge branch 'main' into copilot/analyze-theming-support
2 parents efd835f + 0098182 commit bee9da0

17 files changed

Lines changed: 2809 additions & 385 deletions

File tree

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"/^node \\.github/skills/load-cache-data/load-cache-data\\.js(?: --last \\d+)?(?: --json)?$/": {
2424
"approve": true,
2525
"matchCommandLine": true
26-
}
26+
},
27+
"npx eslint": true
2728
}
2829
}

esbuild.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ async function main() {
4747
usage: 'src/webview/usage/main.ts',
4848
diagnostics: 'src/webview/diagnostics/main.ts',
4949
logviewer: 'src/webview/logviewer/main.ts',
50+
maturity: 'src/webview/maturity/main.ts',
5051
},
5152
bundle: true,
5253
format: 'iife',

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@
4949
"title": "Generate Diagnostic Report",
5050
"category": "Copilot Token Tracker"
5151
},
52+
{
53+
"command": "copilot-token-tracker.showMaturity",
54+
"title": "Show Copilot Fluency Score",
55+
"category": "Copilot Token Tracker"
56+
},
5257
{
5358
"command": "copilot-token-tracker.configureBackend",
5459
"title": "Configure Backend",

src/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,3 +77,38 @@ Note: These are the current GitHub Copilot supported Gemini models. Pricing from
7777
- After making changes, run `npm run compile` to rebuild
7878
- Pricing is for reference only - GitHub Copilot may use different pricing structures
7979
- Cost estimates assume a 50/50 split between input and output tokens
80+
81+
## customizationPatterns.json
82+
83+
Defines repository file patterns that the extension will scan for to discover Copilot customization files (for example: `copilot-instructions.md`, `skills/` folders, `agents.md`). The extension uses these patterns to produce the "Customization Files" section in the Usage Analysis webview.
84+
85+
Structure:
86+
87+
```json
88+
{
89+
"patterns": [
90+
{
91+
"id": "copilot-instructions",
92+
"label": "copilot-instructions.md",
93+
"path": "copilot-instructions.md",
94+
"scanMode": "exact",
95+
"icon": "📋"
96+
}
97+
],
98+
"stalenessThresholdDays": 90,
99+
"excludeDirs": [".git", "node_modules"]
100+
}
101+
```
102+
103+
Notes:
104+
105+
- `scanMode` can be `exact`, `oneLevel`, or `recursive`.
106+
- `stalenessThresholdDays` controls when a file is marked as stale in the UI.
107+
- `excludeDirs` lists directories to skip during recursive scans.
108+
109+
To update patterns:
110+
111+
1. Edit `src/customizationPatterns.json` and add or adjust entries.
112+
2. Run `npm run compile` to rebuild the extension.
113+
114+
The usage webview will surface discovered files per workspace and mark files as stale when their last modification time exceeds `stalenessThresholdDays`.

src/customizationPatterns.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
{
2+
"description": "Defines Copilot customization file patterns to scan in workspaces",
3+
"lastUpdated": "2026-02-11",
4+
"stalenessThresholdDays": 90,
5+
"excludeDirs": ["node_modules", ".git", "dist", "build", "out", "__pycache__", ".venv", ".next", "coverage"],
6+
"patterns": [
7+
{
8+
"id": "copilot-instructions",
9+
"type": "instructions",
10+
"icon": "📋",
11+
"label": "Instructions",
12+
"path": ".github/copilot-instructions.md",
13+
"scanMode": "exact"
14+
},
15+
{
16+
"id": "copilot-setup",
17+
"type": "coding-agent",
18+
"icon": "⚙️",
19+
"label": "Coding Agent Setup",
20+
"path": ".github/copilot-setup.md",
21+
"scanMode": "exact"
22+
},
23+
{
24+
"id": "mcp-config",
25+
"type": "mcp-config",
26+
"icon": "🔌",
27+
"label": "MCP Server Config",
28+
"path": ".vscode/mcp.json",
29+
"scanMode": "exact"
30+
},
31+
{
32+
"id": "skills",
33+
"type": "skill",
34+
"icon": "🧠",
35+
"label": "Skill Files",
36+
"path": ".github/skills/*/SKILL.md",
37+
"scanMode": "oneLevel"
38+
},
39+
{
40+
"id": "agents-dir",
41+
"type": "agent",
42+
"icon": "🤖",
43+
"label": "Custom agents",
44+
"path": ".github/agents/*.md",
45+
"scanMode": "recursive",
46+
"maxDepth": 3
47+
},
48+
{
49+
"id": "scoped-instructions",
50+
"type": "instructions",
51+
"icon": "📋",
52+
"label": "Scoped Instructions",
53+
"path": "**/*.instructions.md",
54+
"scanMode": "recursive",
55+
"maxDepth": 5
56+
},
57+
{
58+
"id": "agents-md",
59+
"type": "agent",
60+
"icon": "🤖",
61+
"label": "AGENTS.md",
62+
"path": "**/AGENTS.md",
63+
"scanMode": "recursive",
64+
"maxDepth": 5,
65+
"caseInsensitive": true
66+
}
67+
]
68+
}

0 commit comments

Comments
 (0)