📝 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:
Justin Wheeler 2026-04-15 22:33:14 -04:00
commit eeba95b0b1
Signed by: jflory7
GPG key ID: 7748B15FA8FA4C7E
4 changed files with 246 additions and 0 deletions

70
AGENTS.md Normal file
View 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
View 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
View 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
View 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.