Student Workbook¶
This workbook provides 12 weeks of structured exercises aligned with the FCC Educators Guide. Each week includes reading assignments, discussion questions, coding exercises, and reflections. Difficulty increases progressively from foundational concepts to advanced integration patterns.
Week 1: Getting Started¶
Reading¶
- Guidebook Chapter 1: Introduction to FCC
README.mdin the project root
Discussion Questions¶
- What problems does the Find-Create-Critique cycle address that a single-pass LLM prompt cannot?
- How does separating agent roles into distinct personas improve output quality?
- Compare FCC's approach to multi-agent coordination with a system you have used before (e.g., microservices, pipelines).
Coding Exercise¶
Install the FCC framework and explore its CLI:
List all available CLI commands and write a one-paragraph summary of each.
Reflection¶
In 200 words, describe a real-world task that could benefit from the Find-Create-Critique pattern. Identify which phase is most likely to be the bottleneck and why.
Self-Assessment Checkpoint¶
- I can install FCC in a virtual environment
- I can run
fcc --helpand understand the major commands - I can explain the three FCC phases in my own words
Week 2: Persona Design¶
Reading¶
- Guidebook Chapter 2: Personas
- Examine
src/fcc/data/personas/core_personas.yaml
Discussion Questions¶
- Why does R.I.S.C.E.A.R. have 10 components rather than fewer? What would be lost if you removed the Adoption Checklist?
- How should the
constraintsfield differ from thestylefield? - What makes a good
archetypedescription?
Coding Exercise¶
Complete Lab 01 (Your First Persona). After completing the lab, extend your persona with: - At least 3 meaningful constraints - At least 4 role skills - At least 3 collaborator references to existing core personas
Reflection¶
Compare your custom persona's R.I.S.C.E.A.R. with the RC (Research Coordinator) persona. What trade-offs did you make in defining constraints vs. flexibility?
Self-Assessment Checkpoint¶
- I can create a valid persona YAML file with all 10 R.I.S.C.E.A.R. components
- I can validate a persona against the schema using
fcc validate - I can load a persona into a PersonaRegistry programmatically
Week 3: Dimensions and Cross-References¶
Reading¶
- Guidebook Chapter 3: R.I.S.C.E.A.R. Dimensions
- Examine
src/fcc/data/personas/dimension_definitions.yaml
Discussion Questions¶
- How do the 9 dimension categories cover different aspects of persona behavior?
- When would two personas have identical dimension profiles, and when should they differ?
- How does the cross-reference matrix enable loose coupling between personas?
Coding Exercise¶
Complete Lab 03 (Custom Dimensions). Additionally:
- Create dimension profiles for 2 personas that have different decision_making attributes
- Write a Python script that loads the cross-reference matrix and prints all interactions where strength > 0.7
Reflection¶
Choose one dimension category (e.g., cultural, innovative) and argue whether it should be mandatory or optional for all personas. Support your position with examples.
Self-Assessment Checkpoint¶
- I can create dimension profiles with valid dimension IDs
- I can query the cross-reference matrix programmatically
- I can explain the difference between upstream, downstream, and peer relationships
Week 4: Workflow Graphs¶
Reading¶
- Guidebook Chapter 4: Workflow System
- Examine
src/fcc/data/workflows/base_sequence.json
Discussion Questions¶
- Why does the base workflow have exactly 5 nodes? What would adding a 6th node accomplish?
- How do the 6 action types (scaffold, refactor, debug, test, compare, document) map to the FCC phases?
- What determines whether a workflow should use the 5-node or 24-node graph?
Coding Exercise¶
Complete Lab 02 (Workflow Walkthrough). Then: - Load the extended 20-node workflow and visualize the graph structure as an ASCII diagram - Write a function that takes a workflow graph and returns the longest path from start to end
Reflection¶
Design a workflow graph for a code review process with at least 8 nodes. Justify the ordering and phase assignments.
Self-Assessment Checkpoint¶
- I can load and traverse workflow graphs
- I can identify FCC phases in a workflow graph
- I can explain when to use different graph sizes
Week 5: Event-Driven Architecture¶
Reading¶
- Guidebook Chapter 6: Simulation Engine
- Developer Guide: Event Bus Guide (
docs/developer/event-bus-guide.md)
Discussion Questions¶
- What are the benefits of using an event bus over direct method calls between components?
- How does event replay enable debugging and testing?
- Which of the 81 event types would you consider most critical for observability?
Coding Exercise¶
Complete Lab 04 (Event-Driven Simulation). Then:
- Write a subscriber that counts events by type and prints a summary after simulation
- Implement an EventFilter that only passes TURN_COMPLETED events from a specific persona
Reflection¶
Describe a scenario where event-driven architecture would introduce more complexity than it solves. What simpler alternative would you propose?
Self-Assessment Checkpoint¶
- I can configure EventBus subscriptions with filters
- I can run a mock simulation and capture events
- I can inspect simulation traces
Week 6: Plugin System¶
Reading¶
- Guidebook Chapter 5: Workflow Actions
- Developer Guide: Plugin Development (
docs/developer/plugin-development.md)
Discussion Questions¶
- What are the 10 plugin types and when would you use each?
- How does the plugin system prevent naming conflicts when merging personas?
- What is cross-plugin orchestration and why is it needed?
Coding Exercise¶
Complete Lab 05 (Plugin Development). Then: - Create a second plugin that provides a custom scoring function - Register both plugins and verify they coexist without conflicts
Reflection¶
Compare the FCC plugin architecture with another plugin system you have used (e.g., VS Code extensions, pytest plugins). What does FCC do differently?
Self-Assessment Checkpoint¶
- I can implement a custom plugin class
- I can register plugins and merge personas
- I can explain the 10 plugin types
Week 7: Governance¶
Reading¶
- Guidebook Chapter 9: Governance
- Examine
src/fcc/data/governance/quality_gates.yaml
Discussion Questions¶
- When should a rule be a hard-stop vs. mandatory vs. preferred?
- How do quality gates differ from constitutions in purpose and enforcement?
- What happens when a governance rule conflicts with a persona's stated style?
Coding Exercise¶
Complete Lab 08 (Governance Setup). Then: - Define 3 quality gates for a data pipeline scenario with justified thresholds - Write a test that verifies a constitution blocks execution when a hard-stop rule is violated
Reflection¶
A team argues that governance adds too much overhead. Write a 300-word response defending or challenging this position, using specific FCC features as evidence.
Self-Assessment Checkpoint¶
- I can define 3-tier constitutions in YAML
- I can configure and validate quality gates
- I can explain the trade-offs of each governance tier
Week 8: Collaboration Engine¶
Reading¶
- Guidebook Chapter 8: Collaboration Engine
Discussion Questions¶
- How does the handoff protocol prevent an AI agent from dominating a session?
- What scoring criteria are most important for evaluating deliverable quality?
- How does SharedContext enable auditability?
Coding Exercise¶
Complete Lab 09 (Collaboration Session). Then: - Create a session with 3 approval gates at different thresholds (3.0, 3.5, 4.0) - Save the session recording and verify it can be loaded and replayed
Reflection¶
Design a handoff protocol for a scenario where 3 humans and 2 AI agents collaborate on a security audit. Specify max_consecutive_agent_turns, auto_approve_threshold, and escalation_threshold with justifications.
Self-Assessment Checkpoint¶
- I can create and manage collaboration sessions
- I can configure approval gates and handoff protocols
- I can save and replay session recordings
Week 9: Knowledge Graphs and Search¶
Reading¶
- API Reference: Knowledge Graphs (
docs/api/knowledge.md) - API Reference: Semantic Search (
docs/api/search.md)
Discussion Questions¶
- How do the 9 node types and 9 edge types cover the FCC domain?
- What are the trade-offs between OWL, SKOS, and JSON-LD serialization formats?
- How does semantic search improve persona discovery compared to keyword search?
Coding Exercise¶
Complete Labs 14 and 15. Then: - Build a knowledge graph from the full persona registry and export it to JSON-LD - Build a PersonaSearchIndex and find the 3 most similar personas to "governance auditor"
Reflection¶
Propose a 10th node type and a 10th edge type that would extend the FCC knowledge graph. Explain what entities they would represent and how they would connect to existing types.
Self-Assessment Checkpoint¶
- I can build knowledge graphs from registries
- I can serialize graphs to multiple formats
- I can build and query semantic search indexes
Week 10: RAG and Protocols¶
Reading¶
- API Reference: RAG Pipeline (
docs/api/rag.md) - API Reference: Protocols (
docs/api/protocols.md)
Discussion Questions¶
- How does chunking strategy affect retrieval quality?
- What is the purpose of persona-aware RAG queries?
- How does the Protocol Bridge enable interoperability between A2A and MCP?
Coding Exercise¶
Complete Labs 16 and 17. Then: - Chunk the FCC guidebook chapters and build a RAG pipeline - Generate A2A Agent Cards for 5 personas and write them to AGENTS.md
Reflection¶
Compare the FCC RAG pipeline with a commercial RAG product you have encountered. What does FCC's persona-aware querying add that generic RAG lacks?
Self-Assessment Checkpoint¶
- I can build an end-to-end RAG pipeline
- I can generate A2A Agent Cards from personas
- I can route messages through the Protocol Bridge
Week 11: Federation¶
Reading¶
- API Reference: Federation (
docs/api/federation.md)
Discussion Questions¶
- Why is entity resolution necessary across federated namespaces?
- How does the ChangeTracker support auditability in federated environments?
- What challenges arise when merging knowledge graphs from different organizations?
Coding Exercise¶
Complete Lab 18 (Federated Knowledge Query). Then: - Create a FederationRegistry with 3 mock projects - Resolve entities across projects and print a resolution report - Build a FederatedKnowledgeGraph and add cross-namespace edges
Reflection¶
An organization has 5 teams, each with their own ontology. Describe a strategy for incrementally federating their knowledge using FCC tools. What would you do first, and what would you defer?
Self-Assessment Checkpoint¶
- I can resolve entities across federated namespaces
- I can build federated knowledge graphs
- I can track and audit cross-project changes
Week 12: Capstone¶
Reading¶
- Review all previous chapters as needed
Coding Exercise¶
Complete the capstone project (see assessment_rubrics.yaml for full requirements):
- 3+ custom personas with full R.I.S.C.E.A.R.
- Custom workflow graph with 8+ nodes
- Domain-specific governance with hard-stop rules and quality gates
- Mock simulation, collaboration session, and session recording
- 10+ tests validating the extension
Presentation¶
Prepare a 10-minute presentation covering: 1. Domain selection and justification 2. Persona and workflow design decisions 3. Governance approach 4. Demo of simulation and collaboration session 5. Lessons learned
Peer Review¶
Complete peer review forms for 2 classmates using the structured rubric. Provide at least 3 specific, actionable suggestions per review.
Self-Assessment Checkpoint¶
- I have demonstrated mastery of all major FCC subsystems
- I can design and justify persona-based workflows for a new domain
- I can provide constructive feedback on others' FCC designs
See Also¶
- Educators Guide -- Course syllabus and grading rubric
- Research Methodology Guide -- Using FCC as a research instrument
- Case Study Template -- Template and examples