📝 Add README.adoc, AGENTS.md, CLAUDE.md, and CONTRIBUTING.md
Rewrite project documentation from Mike McGrath's Agentic SDLC Starter Kit for the Meeting Secretary repository: - `AGENTS.md`: Full rewrite replacing all [EXAMPLE] boilerplate with actual project context — objective, architecture (Gem + knowledge + templates), repository layout, conventions, common contributor tasks, and pitfalls agents commonly hit with meeting log data. - `README.adoc`: Expanded from a three-line stub into the primary project README with purpose, repository layout table, quick start guide, and customization instructions. - `CONTRIBUTING.md`: Adapted from the enterprise SDLC workflow to a prompt-engineering contribution model — how to fork templates, add examples, update the team registry and propose Gem definition changes. - `CLAUDE.md`: Updated with project-specific context for Claude Code, including template placeholder consistency checks and the ventilated prose convention. Assisted-by: Claude Opus 4.6 (1M context) Signed-off-by: Justin Wheeler <jwheel@redhat.com>
This commit is contained in:
parent
789383bb60
commit
eeba95b0b1
4 changed files with 246 additions and 0 deletions
70
AGENTS.md
Normal file
70
AGENTS.md
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# AGENTS.md — Project context for AI assistants
|
||||
|
||||
## Project objective
|
||||
|
||||
Build and maintain **Meeting Secretary**: a collaborative project for reusable prompts and AI/LLM tools that streamline Fedora community meeting workflows.
|
||||
The primary artifact is a Google Gemini Gem that transforms Meetbot HTML log files into structured Markdown outputs for Fedora Discussion summary posts and Forgejo ticket comment updates.
|
||||
|
||||
- **Success looks like**: Consistent, high-quality meeting summaries that bridge the context gap for contributors who missed the meeting. Fire-and-forget workflow — provide the log, get all outputs ready to copy-paste.
|
||||
- **Non-goals**: This is not a hosted service, API, or bot. It does not interact with Matrix, Discourse, or Forgejo automatically. It does not execute Meetbot commands.
|
||||
|
||||
## How we work (agentic first)
|
||||
|
||||
- **Human role**: Intent, prompt design decisions, output quality review, final editing before posting.
|
||||
- **Agent role**: Implementation drafts for prompt text, knowledge files, templates, and documentation — always reviewed by a human.
|
||||
- **Contributions**: This project is hosted publicly on Fedora Forge. Many Fedora contributors have write access. Contributions follow the prompt-engineering workflow described in `CONTRIBUTING.md`.
|
||||
|
||||
## Architecture (high level)
|
||||
|
||||
- **Core Gem definition**: `definition.md` — the system prompt that defines the Gem's role, workflow, parsing logic, and constraints. References knowledge files and templates rather than embedding all data inline.
|
||||
- **Knowledge files**: `knowledge/` — reference data attached to the Gem as context. Currently includes `teams.md` (Fedora org chart) and `meetbot-commands.md` (Meetbot command parsing reference).
|
||||
- **Output templates**: `templates/` — fill-in-the-blanks Markdown templates for each output type. Currently includes `discourse-post.md` and `forgejo-comment.md`. Contributors fork these to customize output for their team.
|
||||
- **Examples**: `examples/` — sample input HTML logs and expected output Markdown. Serves as documentation and a regression baseline.
|
||||
|
||||
## Repository layout
|
||||
|
||||
| Path | Purpose |
|
||||
|------|---------|
|
||||
| `definition.md` | Core Gem system prompt |
|
||||
| `knowledge/` | Gem knowledge files (teams, Meetbot commands) |
|
||||
| `templates/` | Output templates (Discourse post, Forgejo comment) |
|
||||
| `examples/input/` | Sample Meetbot HTML log files |
|
||||
| `examples/output/` | Expected Markdown outputs |
|
||||
| `assets/` | Gem avatar and other static assets |
|
||||
| `docs/` | Design specs, agentic SDLC reference, principles |
|
||||
| `AGENTS.md` | This file — project context for AI assistants |
|
||||
| `CLAUDE.md` | Claude Code pointer to this file |
|
||||
| `CONTRIBUTING.md` | How to contribute |
|
||||
| `REDHAT.md` | Red Hat AI policy reference |
|
||||
| `README.adoc` | Primary project README |
|
||||
| `LICENSE.txt` | CC BY-SA 4.0 |
|
||||
|
||||
## Conventions
|
||||
|
||||
- **License**: CC BY-SA 4.0. All contributions are made under this license.
|
||||
- **Commits**: Use gitmoji + component scope. Include `Assisted-by:` or `Generated-by:` per `REDHAT.md` when AI-assisted.
|
||||
- **Markdown**: One sentence per line (ventilated prose). This produces cleaner diffs and easier review.
|
||||
- **Secrets**: Never commit API keys, tokens, or credentials. Use `.env` files (gitignored) for local configuration.
|
||||
- **Template placeholders**: Use `{{DOUBLE_BRACES}}` syntax in template files.
|
||||
|
||||
## Common tasks (copy-paste prompts)
|
||||
|
||||
- "Add a new team to `knowledge/teams.md` — I need to add the [team name] team under the [FESCo/Mindshare/Council] branch."
|
||||
- "Create a template variant — I want to customize the Discourse post format for my team's meetings. Fork `templates/discourse-post.md` and adjust the greeting and section structure."
|
||||
- "Add an example — I ran the Gem on a [team name] meeting log. Here is the input HTML and the validated output. Add them to `examples/`."
|
||||
- "Update the Meetbot command reference — the [command] was added/changed. Update `knowledge/meetbot-commands.md`."
|
||||
- "Review the Gem definition — I want to improve how the Gem handles [specific aspect]. Read `definition.md` and suggest changes."
|
||||
|
||||
## Things agents often get wrong here
|
||||
|
||||
- **Hallucinating attendees or actions**: The Gem must only report what is in the log. Agents editing the definition or templates should not add example content that could be mistaken for real meeting data.
|
||||
- **Guessing Meetbot URLs**: Log link URLs follow a pattern but must remain as placeholders. Never fabricate a URL.
|
||||
- **Confusing FESCo vs. Mindshare**: The Docs team is under Mindshare, not FESCo. The Council is neither. Check `knowledge/teams.md` before writing org context.
|
||||
- **Paraphrasing `!agreed`/`!rejected`**: These must be reproduced verbatim. Agents should never rewrite formal decisions.
|
||||
- **Ignoring chatter**: Lines without `!` commands contain the conversational nuance needed for the Detailed Meeting Log. They are not noise.
|
||||
|
||||
## Key links
|
||||
|
||||
- Agentic SDLC playbook: [docs/agentic-sdlc.md](docs/agentic-sdlc.md)
|
||||
- Principles and tenets: [docs/principles.md](docs/principles.md)
|
||||
- Red Hat AI policy: [REDHAT.md](REDHAT.md)
|
||||
22
CLAUDE.md
Normal file
22
CLAUDE.md
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
# Claude Code — project context
|
||||
|
||||
This repository uses **AGENTS.md** as the canonical description of architecture, conventions, and pitfalls.
|
||||
|
||||
## Before making changes
|
||||
|
||||
1. Read `AGENTS.md` and skim `docs/agentic-sdlc.md`.
|
||||
2. Follow `REDHAT.md` for Red Hat AI policy (attribution, sensitive data, upstream).
|
||||
3. Prefer small, reviewable steps; ask for constraints before making changes.
|
||||
|
||||
## Working agreements
|
||||
|
||||
- Propose a short plan for non-trivial work; then implement.
|
||||
- After edits, verify that template `{{PLACEHOLDER}}` names are consistent between `definition.md` and the template files in `templates/`.
|
||||
- For commits: remind the user to add `Assisted-by:` or `Generated-by:` when appropriate.
|
||||
|
||||
## Project-specific context
|
||||
|
||||
- This is a **prompt-engineering** project, not a software application. The primary artifact is a Google Gemini Gem definition.
|
||||
- Files in `knowledge/` and `templates/` are attached to the Gem as knowledge context. Changes to these files affect Gem behavior.
|
||||
- Use one sentence per line (ventilated prose) in all Markdown and AsciiDoc files.
|
||||
- Template placeholders use `{{DOUBLE_BRACES}}` syntax.
|
||||
77
CONTRIBUTING.md
Normal file
77
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Contributing — Meeting Secretary
|
||||
|
||||
Contributions are welcome — whether you are refining the Gem prompt, adding templates for your team, contributing example meeting logs, or improving the documentation.
|
||||
|
||||
This project uses an **agentic-first** workflow: AI coding agents assist with drafting, while humans set intent, review, and own every change that ships.
|
||||
|
||||
## Before you start
|
||||
|
||||
1. **Read [AGENTS.md](AGENTS.md)** — project context, architecture, conventions, and common pitfalls.
|
||||
2. **Read [REDHAT.md](REDHAT.md)** — Red Hat AI policy: attribution, sensitive data, upstream rules.
|
||||
3. **Skim [docs/agentic-sdlc.md](docs/agentic-sdlc.md)** — the agentic-first philosophy and development loop.
|
||||
|
||||
## What you can contribute
|
||||
|
||||
### Customize templates for your team
|
||||
|
||||
The `templates/` directory contains the default output formats.
|
||||
If your team's meeting summaries need a different structure, greeting style, or section layout:
|
||||
|
||||
1. Fork this repository (or create a branch if you have write access).
|
||||
2. Copy and edit the template file (e.g., `templates/discourse-post.md`).
|
||||
3. Submit a merge request with your changes.
|
||||
|
||||
Template changes should preserve the `{{PLACEHOLDER}}` syntax so the Gem can still fill them in.
|
||||
|
||||
### Add example inputs and outputs
|
||||
|
||||
The `examples/` directory serves as documentation and a regression baseline.
|
||||
To add an example from your team's meeting:
|
||||
|
||||
1. Save the Meetbot HTML log file to `examples/input/` using the naming convention: `YYYY-MM-DD-<team>-<minutes|logs>.html`.
|
||||
2. Run the Gem on the input and validate the output.
|
||||
3. Save the validated Discourse post to `examples/output/` as `YYYY-MM-DD-<team>-discourse.md`.
|
||||
4. If tickets were discussed, save each Forgejo comment as `YYYY-MM-DD-<team>-forgejo-ticket-<number>.md`.
|
||||
5. Submit a merge request.
|
||||
|
||||
### Update the team registry
|
||||
|
||||
The `knowledge/teams.md` file is derived from the Fedora org chart (April 2023).
|
||||
If a team has been added, renamed, moved, or retired, update this file and submit a merge request.
|
||||
|
||||
### Update the Meetbot command reference
|
||||
|
||||
If Meetbot adds new commands or changes behavior, update `knowledge/meetbot-commands.md`.
|
||||
|
||||
### Improve the Gem definition
|
||||
|
||||
Changes to `definition.md` affect the core behavior of the Gem.
|
||||
For substantial changes, open an issue first to discuss the motivation and approach.
|
||||
For small fixes (typos, clarifications), a direct merge request is fine.
|
||||
|
||||
## Attribution
|
||||
|
||||
All AI-assisted contributions require a commit trailer per [REDHAT.md](REDHAT.md):
|
||||
|
||||
| Situation | Trailer |
|
||||
|-----------|---------|
|
||||
| You directed the work and edited meaningfully | `Assisted-by: <tool name>` |
|
||||
| Large generated chunk, minimal human edit | `Generated-by: <tool name>` |
|
||||
| Unsure | `Assisted-by: <tool name>` |
|
||||
|
||||
## Code review expectations
|
||||
|
||||
This is a prompt-engineering project, so "code review" means reviewing prompt text, knowledge data, and templates.
|
||||
Reviewers should focus on:
|
||||
|
||||
- **Accuracy** of team descriptions and Meetbot command semantics.
|
||||
- **Template consistency** — do placeholders match what the Gem definition expects?
|
||||
- **Output quality** — do example outputs match the template structure?
|
||||
- **Hallucination risk** — does the change introduce language that could cause the Gem to fabricate information?
|
||||
|
||||
## Conventions
|
||||
|
||||
- **Markdown**: One sentence per line (ventilated prose).
|
||||
- **Template placeholders**: `{{DOUBLE_BRACES}}` syntax.
|
||||
- **Naming**: `YYYY-MM-DD-<team>-<type>` for example files.
|
||||
- **License**: All contributions are made under CC BY-SA 4.0.
|
||||
77
README.adoc
Normal file
77
README.adoc
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
= Meeting Secretary
|
||||
:toc: macro
|
||||
:toclevels: 2
|
||||
:url-fedora-discussion: https://discussion.fedoraproject.org
|
||||
:url-meetbot: https://meetbot.fedoraproject.org
|
||||
:url-forgejo: https://forge.fedoraproject.org
|
||||
|
||||
Reusable AI prompts and knowledge files for summarizing Fedora Meetbot meetings into Fedora Discussion topics and Forgejo ticket comments.
|
||||
|
||||
toc::[]
|
||||
|
||||
== About
|
||||
|
||||
Meeting Secretary is a collaborative project for reusable prompts and AI/LLM tools that streamline Fedora community meeting workflows.
|
||||
The primary artifact is a Google Gemini Gem that transforms {url-meetbot}[Meetbot] HTML log files into structured Markdown outputs:
|
||||
|
||||
* **{url-fedora-discussion}[Fedora Discussion] summary posts** -- comprehensive meeting recaps with executive summary, action items, and detailed chronological log.
|
||||
* **{url-forgejo}[Forgejo] ticket comments** -- concise per-ticket updates with follow-up items, linking back to the full discussion topic.
|
||||
|
||||
The Gem follows a fire-and-forget workflow: provide the Meetbot log files, the Gem analyzes them and produces all outputs as ready-to-copy Markdown blocks.
|
||||
|
||||
== Repository Layout
|
||||
|
||||
[cols="1,3", options="header"]
|
||||
|===
|
||||
| Path | Purpose
|
||||
|
||||
| `definition.md`
|
||||
| Core Gem system prompt
|
||||
|
||||
| `knowledge/`
|
||||
| Gem knowledge files (Fedora team registry, Meetbot command reference)
|
||||
|
||||
| `templates/`
|
||||
| Output templates (Discourse post, Forgejo comment)
|
||||
|
||||
| `examples/`
|
||||
| Sample input HTML logs and expected output Markdown
|
||||
|
||||
| `docs/`
|
||||
| Design specs and agentic SDLC reference material
|
||||
|
||||
| `AGENTS.md`
|
||||
| Project context for AI assistants
|
||||
|
||||
| `CONTRIBUTING.md`
|
||||
| How to contribute
|
||||
|
||||
| `REDHAT.md`
|
||||
| Red Hat AI policy reference
|
||||
|
||||
| `LICENSE.txt`
|
||||
| CC BY-SA 4.0
|
||||
|===
|
||||
|
||||
== Quick Start
|
||||
|
||||
. Set up a Google Gemini Gem (or compatible LLM tool).
|
||||
. Copy the contents of `definition.md` as the Gem's system prompt.
|
||||
. Attach the files in `knowledge/` as knowledge context to the Gem.
|
||||
. Attach the files in `templates/` as knowledge context to the Gem.
|
||||
. Provide a Meetbot HTML log file to the Gem.
|
||||
. Copy the generated Markdown outputs to Fedora Discussion and Forgejo.
|
||||
|
||||
== Customization
|
||||
|
||||
The modular design makes it easy to adapt Meeting Secretary for your team:
|
||||
|
||||
* **Templates:** Fork and edit files in `templates/` to change the output format, greeting style, or section structure.
|
||||
* **Knowledge files:** Update `knowledge/teams.md` to add or correct team information.
|
||||
* **Examples:** Add your team's meeting logs and validated outputs to `examples/` to build a shared corpus.
|
||||
|
||||
See link:CONTRIBUTING.md[CONTRIBUTING.md] for full contribution guidelines.
|
||||
|
||||
== License
|
||||
|
||||
CC BY-SA 4.0 (C) Justin Wheeler, Fedora AI/ML SIG, & Fedora community.
|
||||
Loading…
Add table
Add a link
Reference in a new issue