diff --git a/AGENTS.md b/AGENTS.md index b8112662..4af726cc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -19,7 +19,7 @@ The Awesome GitHub Copilot repository is a community-driven collection of custom ├── prompts/ # Task-specific prompts (.prompt.md files) ├── instructions/ # Coding standards and guidelines (.instructions.md files) ├── skills/ # Agent Skills folders (each with SKILL.md and optional bundled assets) -├── hooks/ # Automated workflow hooks (.hook.md files) +├── hooks/ # Automated workflow hooks (folders with README.md + hooks.json) ├── collections/ # Curated collections of resources (.md files) ├── docs/ # Documentation for different resource types ├── eng/ # Build and automation scripts @@ -52,7 +52,7 @@ npm run skill:create -- --name ### Working with Agents, Prompts, Instructions, Skills, and Hooks -All agent files (`*.agent.md`), prompt files (`*.prompt.md`), instruction files (`*.instructions.md`), and hook files (`*.hook.md`) must include proper markdown front matter. Agent Skills are folders containing a `SKILL.md` file with frontmatter and optional bundled assets: +All agent files (`*.agent.md`), prompt files (`*.prompt.md`), and instruction files (`*.instructions.md`) must include proper markdown front matter. Agent Skills are folders containing a `SKILL.md` file with frontmatter and optional bundled assets. Hooks are folders containing a `README.md` with frontmatter and a `hooks.json` configuration file: #### Agent Files (*.agent.md) - Must have `description` field (wrapped in single quotes) diff --git a/eng/collection-to-plugin.mjs b/eng/collection-to-plugin.mjs index 54e7c5ba..00099e12 100644 --- a/eng/collection-to-plugin.mjs +++ b/eng/collection-to-plugin.mjs @@ -4,7 +4,11 @@ import fs from "fs"; import path from "path"; import readline from "readline"; import { COLLECTIONS_DIR, ROOT_FOLDER } from "./constants.mjs"; -import { parseCollectionYaml, parseFrontmatter } from "./yaml-parser.mjs"; +import { + parseCollectionYaml, + parseFrontmatter, + parseHookMetadata, +} from "./yaml-parser.mjs"; const PLUGINS_DIR = path.join(ROOT_FOLDER, "plugins"); @@ -238,7 +242,11 @@ function generateReadme(collection, items) { const name = getDisplayName(item.path, "hook"); const description = item.frontmatter?.description || item.frontmatter?.name || name; - const event = item.frontmatter?.event || "N/A"; + // Extract events from hooks.json rather than frontmatter + const hookFolderPath = path.join(ROOT_FOLDER, path.dirname(item.path)); + const hookMeta = parseHookMetadata(hookFolderPath); + const event = + hookMeta?.hooks?.length > 0 ? hookMeta.hooks.join(", ") : "N/A"; lines.push(`| \`${name}\` | ${description} | ${event} |`); } lines.push(""); diff --git a/hooks/session-logger/README.md b/hooks/session-logger/README.md index 461b45d1..3d544341 100644 --- a/hooks/session-logger/README.md +++ b/hooks/session-logger/README.md @@ -11,18 +11,16 @@ Comprehensive logging for GitHub Copilot coding agent sessions, tracking session ## Overview This hook provides detailed logging of Copilot coding agent activity: -- Session start/end times -- User prompts and questions -- Session duration -- Working directory context +- Session start/end times with working directory context +- User prompt submission events +- Configurable log levels ## Features -- **Complete Audit Trail**: Track all Copilot interactions +- **Session Tracking**: Log session start and end events +- **Prompt Logging**: Record when user prompts are submitted - **Structured Logging**: JSON format for easy parsing -- **Searchable History**: Review past sessions and prompts -- **Analytics Ready**: Export data for usage analysis -- **Privacy Aware**: Configurable to exclude sensitive data +- **Privacy Aware**: Configurable to disable logging entirely ## Installation @@ -45,15 +43,11 @@ This hook provides detailed logging of Copilot coding agent activity: ## Log Format -Logs are written to `logs/copilot/session.log` in JSON format: +Session events are written to `logs/copilot/session.log` and prompt events to `logs/copilot/prompts.log` in JSON format: ```json -{ - "timestamp": "2024-01-15T10:30:00Z", - "event": "sessionStart", - "sessionId": "abc123", - "cwd": "/workspace/project" -} +{"timestamp":"2024-01-15T10:30:00Z","event":"sessionStart","cwd":"/workspace/project"} +{"timestamp":"2024-01-15T10:35:00Z","event":"sessionEnd"} ``` ## Privacy & Security diff --git a/website/src/scripts/utils.ts b/website/src/scripts/utils.ts index a7f8e8c2..6be977a0 100644 --- a/website/src/scripts/utils.ts +++ b/website/src/scripts/utils.ts @@ -503,5 +503,7 @@ export function getLastUpdatedHtml(isoDate: string | null | undefined): string { return `Updated: Unknown`; } - return `Updated ${relativeTime}`; + return `Updated ${relativeTime}`; }