Development Tools, Version Control, and Deployment
Summary
This final chapter brings together all the tools and techniques needed to complete and deploy your intelligent textbook project. You'll learn to use Visual Studio Code effectively for content development, including working with the integrated terminal. The chapter covers Bash shell scripting, script execution permissions, and essential command-line operations including directory navigation, file creation and editing, and symlink creation for skill installation.
The chapter synthesizes all the skills, tools, and knowledge from previous chapters as you work through the capstone project: creating a complete intelligent textbook from start to finish. This culminating experience demonstrates your ability to apply course description development, learning graph generation, content creation, interactive element integration, and deployment workflows to produce a professional, AI-enhanced educational resource.
Concepts Covered
This chapter covers the following 10 concepts from the learning graph:
- Visual Studio Code
- VS Code for Content Development
- Terminal in VS Code
- Bash
- Shell Scripts
- Script Execution Permissions
- Directory Navigation
- File Creation and Editing
- Symlink Creation
- Capstone: Complete Textbook Project
Prerequisites
This chapter builds on concepts from:
- Chapter 1: Introduction to AI and Intelligent Textbooks
- Chapter 2: Getting Started with Claude and Skills
- Chapter 4: Introduction to Learning Graphs
- Chapter 10: Content Creation Workflows
- Chapter 11: Educational Resources and Assessment
- Chapter 12: Interactive Elements and MicroSims
Introduction
Creating intelligent textbooks requires mastery of professional development tools and workflows that streamline content creation, version control, and deployment. This chapter introduces the essential development environment used throughout the intelligent textbook creation process, focusing on Visual Studio Code as the primary content authoring platform and Bash shell scripting for automation.
Unlike traditional textbook authoring tools like Microsoft Word or Google Docs, intelligent textbook development leverages software engineering practices including version control with Git, command-line workflows, and automated deployment pipelines. These practices enable collaborative content development, reproducible builds, and seamless publication to web platforms like GitHub Pages.
By the end of this chapter, you'll work through a comprehensive capstone project that integrates all the skills, tools, and workflows from previous chapters to create a complete intelligent textbook from concept to deployment.
Visual Studio Code
Visual Studio Code (VS Code) is a free, open-source code editor developed by Microsoft that has become the de facto standard for modern software development and technical content creation. While it was initially designed for programming, its extensibility, integrated terminal, and markdown preview capabilities make it ideal for intelligent textbook authoring.
Why VS Code for Textbook Development?
Traditional word processors are optimized for print documents with fixed page layouts, while intelligent textbooks are dynamic, web-based resources built from markdown source files. VS Code provides several advantages for this workflow:
- Markdown editing with live preview: Real-time rendering of formatted content
- Integrated Git support: Version control operations without leaving the editor
- Built-in terminal: Execute MkDocs commands, Python scripts, and shell utilities
- Extension ecosystem: Plugins for spell-checking, markdown linting, and diagram generation
- Multi-file management: Navigate complex textbook structures with hundreds of files
- Search and replace across files: Consistent terminology and formatting at scale
Key Features for Content Creators
The following features are particularly valuable for intelligent textbook development:
- Explorer panel: Navigate chapter directories, MicroSim folders, and asset files
- Search panel: Find all references to specific concepts across the entire textbook
- Source control panel: Track changes, create commits, and push updates to GitHub
- Extensions marketplace: Install tools like Markdown All in One, Code Spell Checker, and MkDocs plugins
- Integrated terminal: Run
mkdocs serve, execute Python scripts, and manage dependencies - Command palette (Cmd/Ctrl+Shift+P): Quick access to all VS Code functionality
Diagram: VS Code Interface Layout for Textbook Development
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
MicroSim Generator Recommendations:
- markdown/screenshot (best) - VS Code interface doesn't benefit from interactivity, annotated image clearest
- microsim-p5 (80/100) - If interactive tour/highlighting needed, p5.js with hover zones works
- mermaid-generator (50/100) - Not designed for UI interface mockups or screenshots
Installation and Setup
VS Code can be downloaded from code.visualstudio.com for macOS, Windows, and Linux. For intelligent textbook development, install these recommended extensions:
| Extension | Purpose | Installation Command |
|---|---|---|
| Markdown All in One | Keyboard shortcuts, auto-preview, TOC generation | code --install-extension yzhang.markdown-all-in-one |
| Code Spell Checker | Catch typos in markdown content | code --install-extension streetsidesoftware.code-spell-checker |
| Markdown Preview Enhanced | Advanced preview with diagrams and export | code --install-extension shd101wyy.markdown-preview-enhanced |
| Python | Syntax highlighting for Python scripts | code --install-extension ms-python.python |
After installation, configure VS Code for optimal markdown editing by adding these settings to your user settings (Cmd/Ctrl+,):
1 2 3 4 5 6 | |
VS Code for Content Development
While VS Code is a powerful general-purpose editor, intelligent textbook content development requires specific workflows and practices that differ from traditional software development. This section covers techniques for efficiently authoring markdown content, managing chapter files, and integrating with the MkDocs build system.
Content Authoring Workflow
A typical content development session follows this pattern:
- Open the project folder: Use File → Open Folder to load the entire textbook repository
- Start the development server: Open integrated terminal and run
mkdocs serve - Navigate to target chapter: Use Explorer panel to locate the chapter's index.md file
- Edit in split view: Open markdown preview (Cmd/Ctrl+K V) to see rendered output
- Save frequently: VS Code auto-saves, but Cmd/Ctrl+S forces immediate update
- Preview in browser: Navigate to
http://localhost:8000to see the full site
This workflow enables rapid iteration, where changes to markdown files are immediately reflected in the browser preview within 1-2 seconds of saving.
Multi-File Editing Techniques
Intelligent textbooks often require editing multiple files simultaneously—for example, updating a concept definition in the glossary while editing chapter content. VS Code provides several techniques for efficient multi-file editing:
- Split editor groups: Drag tabs to create side-by-side or stacked editor layouts
- Quick Open (Cmd/Ctrl+P): Type partial filename to instantly open any file
- Go to Symbol (Cmd/Ctrl+Shift+O): Navigate to specific headers within long markdown files
- Breadcrumbs: Show file path and document structure at top of editor
- Tab groups: Organize related files (e.g., all Chapter 3 materials) in separate tab groups
For complex editing tasks like renaming a concept across all chapters, use VS Code's search and replace across files feature:
- Open Search panel (Cmd/Ctrl+Shift+F)
- Enter search term: "Configuration Item (CI)"
- Enter replacement: "Configuration Item"
- Review matches in context
- Replace All to update all instances
Markdown Productivity Tips
The following keyboard shortcuts and features accelerate markdown authoring:
- Cmd/Ctrl+B: Toggle bold formatting on selected text
- Cmd/Ctrl+I: Toggle italic formatting
- Cmd/Ctrl+Shift+V: Open markdown preview in new tab
- Cmd/Ctrl+K V: Open preview to the side
- Alt+Shift+F: Auto-format current markdown file
- Cmd/Ctrl+/: Toggle comment on selected lines (useful for temporary removal)
The Markdown All in One extension adds additional shortcuts:
- Cmd/Ctrl+Shift+]: Insert/update table of contents
- Alt+C: Check/uncheck task list items
- Ctrl+Shift+[: Decrease heading level
- Ctrl+Shift+]: Increase heading level
Terminal in VS Code
The integrated terminal in VS Code eliminates context switching between the editor and a separate terminal application, enabling seamless execution of build commands, Python scripts, and Git operations. This integration is particularly valuable for intelligent textbook workflows where content editing and script execution are tightly coupled.
Accessing the Integrated Terminal
The terminal can be opened in several ways:
- Keyboard shortcut: Ctrl+` (backtick) toggles terminal visibility
- Menu: View → Terminal
- Command Palette: Cmd/Ctrl+Shift+P, then type "Terminal: Create New Integrated Terminal"
By default, the terminal appears in the Panel area at the bottom of the VS Code window, but it can be moved to the side or floated as a separate panel.
Terminal Features for Textbook Development
The integrated terminal provides several advantages over standalone terminal applications:
- Automatic working directory: Terminal opens in the project root directory
- Output linking: Click file paths in error messages to jump to that file
- Split terminals: Run multiple commands simultaneously (e.g.,
mkdocs servein one, Python scripts in another) - Command history: Use up/down arrows to recall previous commands
- Copy/paste integration: Cmd/Ctrl+C/V work as expected (no special terminal shortcuts needed)
Common Terminal Commands for Textbook Projects
The following commands are executed frequently during intelligent textbook development:
| Command | Purpose | Typical Output |
|---|---|---|
mkdocs serve |
Start local development server | Serving on http://127.0.0.1:8000 |
mkdocs build --strict |
Build site and fail on warnings | INFO - Building documentation... |
python docs/learning-graph/analyze-graph.py |
Validate learning graph structure | Quality score: 87/100 |
./scripts/list-skills.sh |
List available Claude skills | Available skills: glossary-generator, quiz-generator... |
git status |
Check current repository state | On branch main, nothing to commit |
git add . && git commit -m "message" |
Stage and commit changes | [main abc1234] message |
Managing Multiple Terminal Sessions
Complex workflows often require multiple simultaneous terminal sessions. VS Code supports this through terminal splitting and tabs:
- Create new terminal: Click + icon in terminal toolbar
- Split terminal: Click split icon to create side-by-side terminals
- Rename terminal: Right-click terminal tab, select "Rename"
- Kill terminal: Click trash icon or exit the shell process
A typical intelligent textbook development session might maintain three terminal sessions:
- Development server terminal: Running
mkdocs servecontinuously - Script execution terminal: For running Python analysis scripts and skill invocations
- Git operations terminal: For staging commits and pushing changes
Diagram: Terminal Workflow for Textbook Development
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | |
MicroSim Generator Recommendations:
- mermaid-generator (95/100) - Terminal command workflow with sequential steps is ideal flowchart
- microsim-p5 (73/100) - Custom workflow with interactive command highlighting possible
- vis-network (55/100) - Can model workflow as graph but less intuitive than flowchart
Bash
Bash (Bourne Again Shell) is the default command-line shell on macOS and most Linux distributions, providing a text-based interface for executing commands, running scripts, and automating workflows. While Windows uses PowerShell by default, Windows Subsystem for Linux (WSL) provides access to Bash on Windows systems.
Understanding Bash is essential for intelligent textbook development because the MkDocs build system, Python script execution, Git version control, and deployment automation all rely on command-line operations.
Shell vs. Terminal vs. Bash
These terms are often used interchangeably but have distinct meanings:
- Terminal: The application that provides a text interface (e.g., Terminal.app on macOS, Windows Terminal)
- Shell: The program that interprets commands (e.g., Bash, Zsh, Fish, PowerShell)
- Bash: A specific shell implementation, currently the most widely used on Unix-like systems
When you open the integrated terminal in VS Code, you're opening a terminal application that runs a shell (typically Bash or Zsh on macOS/Linux, PowerShell on Windows).
Bash Command Structure
Bash commands follow a consistent structure:
1 | |
For example, the command ls -la /docs/chapters breaks down as:
- Command:
ls(list directory contents) - Options:
-la(long format, show hidden files) - Arguments:
/docs/chapters(directory to list)
Options typically start with - (single dash) for short options or -- (double dash) for long options. Multiple short options can be combined: -l -a is equivalent to -la.
Essential Bash Commands for Textbook Development
The following commands are used frequently in intelligent textbook workflows:
| Command | Purpose | Example |
|---|---|---|
pwd |
Print working directory | pwd → /Users/username/textbook-project |
ls |
List directory contents | ls -la docs/chapters |
cd |
Change directory | cd docs/chapters/01-intro |
mkdir |
Create directory | mkdir docs/sims/new-microsim |
touch |
Create empty file | touch docs/chapters/05-graphs/index.md |
cp |
Copy files | cp template.md chapter-03.md |
mv |
Move/rename files | mv old-name.md new-name.md |
rm |
Remove files | rm docs/chapters/draft.md |
cat |
Display file contents | cat mkdocs.yml |
grep |
Search text | grep "learning graph" docs/**/*.md |
chmod |
Change file permissions | chmod +x scripts/install-skills.sh |
ln |
Create symbolic link | ln -s ~/.claude/skills/glossary-generator ./ |
Bash Environment and Variables
Bash maintains environment variables that configure shell behavior and store system information. Common variables include:
$HOME: User's home directory (e.g.,/Users/username)$PATH: Directories searched for executable commands$PWD: Current working directory$USER: Current username
You can display variable values using echo:
1 2 3 | |
Command Chaining and Redirection
Bash allows combining multiple commands using operators:
-
Sequential execution (
;): Run commands one after another regardless of success1cd docs/learning-graph; python analyze-graph.py learning-graph.csv quality-metrics.md -
Conditional execution (
&&): Run second command only if first succeeds1mkdocs build --strict && mkdocs gh-deploy -
Output redirection (
>): Save command output to file1python analyze-graph.py learning-graph.csv > quality-report.txt -
Append to file (
>>): Add command output to end of existing file1echo "Quality check completed" >> build-log.txt -
Pipe (
|): Send output of one command as input to another1ls -la | grep ".md" # List only markdown files
Directory Navigation
Efficient directory navigation is fundamental to command-line workflows, enabling quick access to chapter files, MicroSim directories, Python scripts, and configuration files. While graphical file browsers are intuitive, command-line navigation is often faster for developers who have memorized their project structure.
Understanding File Paths
File paths specify the location of files and directories in the filesystem hierarchy. There are two types of paths:
-
Absolute paths: Start from the root directory (
/on Unix,C:\on Windows)1/Users/username/Documents/textbook-project/docs/chapters/01-intro/index.md -
Relative paths: Start from the current working directory
1 2
# If current directory is /Users/username/Documents/textbook-project docs/chapters/01-intro/index.md
Special directory references:
.(single dot): Current directory..(double dot): Parent directory~(tilde): User's home directory-(dash): Previous working directory
Navigating the Filesystem
The cd (change directory) command moves between directories:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |
Intelligent Textbook Directory Structure
A typical intelligent textbook project has this structure:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
Navigation Best Practices
Efficient navigation requires understanding project structure and using shortcuts:
-
Use tab completion: Type first few characters and press Tab to autocomplete
1cd docs/ch<Tab> # Autocompletes to docs/chapters/ -
Use wildcards for pattern matching:
1ls docs/chapters/*/index.md # List all chapter index files -
Create shell aliases for frequent destinations:
1 2
alias chapters="cd ~/Documents/textbook-project/docs/chapters" alias sims="cd ~/Documents/textbook-project/docs/sims" -
Use
pushdandpopdfor temporary directory changes:1 2 3
pushd docs/learning-graph # Navigate and save previous location python analyze-graph.py learning-graph.csv quality-metrics.md popd # Return to previous location
Diagram: Interactive Directory Navigation Practice MicroSim
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | |
MicroSim Generator Recommendations:
- microsim-p5 (94/100) - Interactive directory navigation simulator with terminal emulation is p5.js strength
- vis-network (85/100) - Can show filesystem as interactive tree graph with navigation
- mermaid-generator (78/100) - Tree diagram for filesystem but limited interactivity
File Creation and Editing
Command-line file creation and editing are essential skills for automating textbook workflows, especially when generating multiple files from templates or making bulk updates. While VS Code is the primary editor for content development, knowing command-line file operations enables scripting and automation.
Creating Files
The touch command creates empty files or updates the modification timestamp of existing files:
1 2 3 4 5 | |
The echo command combined with output redirection creates files with initial content:
1 2 3 4 5 | |
For multi-line content, use a here-document:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
Editing Files
While command-line text editors like vim, nano, and emacs are available, most intelligent textbook developers prefer editing in VS Code. However, simple text transformations can be performed using command-line tools:
sed (stream editor): Perform find-and-replace operations
1 2 3 4 5 6 | |
awk (text processing): Extract and transform structured text
1 2 3 4 5 | |
grep (pattern matching): Search for text patterns
1 2 3 4 5 | |
File Manipulation Operations
Common file operations for textbook projects:
| Operation | Command | Example |
|---|---|---|
| Copy file | cp source destination |
cp chapter-template.md chapter-05.md |
| Copy directory | cp -r source destination |
cp -r templates/chapter docs/chapters/05-new |
| Move/rename | mv source destination |
mv old-chapter.md new-chapter.md |
| Delete file | rm filename |
rm docs/chapters/draft.md |
| Delete directory | rm -r dirname |
rm -r docs/chapters/deprecated |
| Create directory | mkdir dirname |
mkdir docs/chapters/15-appendix |
| Create nested directories | mkdir -p path/to/dir |
mkdir -p docs/sims/new-sim/assets |
Safe File Operations
To prevent accidental data loss, use these practices:
-
Use
-iflag for interactive confirmation:1rm -i docs/chapters/draft.md # Prompts "remove docs/chapters/draft.md?" -
Use
-nflag for no-clobber (don't overwrite):1cp -n source.md destination.md # Only copies if destination doesn't exist -
Preview operations before executing:
1 2 3 4
# Preview files that would be deleted find docs/chapters -name "draft*.md" # Then delete them find docs/chapters -name "draft*.md" -delete -
Use version control as a safety net:
1 2 3 4
git status # Check for uncommitted changes git stash # Temporarily save current changes # Perform risky operations git stash pop # Restore changes if needed
Shell Scripts
Shell scripts are text files containing sequences of Bash commands that automate repetitive tasks. In intelligent textbook development, shell scripts are used to install Claude skills, generate content, validate quality, and deploy to production.
Anatomy of a Shell Script
A basic shell script has three components:
-
Shebang line: Specifies the interpreter (always first line)
1#!/bin/bash -
Comments: Explain what the script does (start with
#)1# Install Claude skills to global skills directory -
Commands: The actual operations to perform
1ln -s $(pwd)/skills/* ~/.claude/skills/
Example: Installing Claude Skills
The install-claude-skills.sh script creates symbolic links from the project's skills directory to the global Claude skills directory:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
Script Components Explained
Variables:
1 2 | |
Command substitution:
1 | |
For loops:
1 2 3 | |
Conditional creation:
1 | |
Symbolic links:
1 | |
Script Best Practices
Effective shell scripts follow these conventions:
- Start with shebang:
#!/bin/bashon line 1 - Use meaningful variable names:
SKILLS_DIRnotdir1 - Quote variables:
"$variable"prevents word splitting - Check for errors: Use
set -eto exit on any command failure - Add help text: Provide usage instructions when run with
-hor--help - Use functions: Break complex scripts into reusable functions
- Validate inputs: Check that required files/directories exist
Example: Advanced Script with Error Handling
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | |
This script demonstrates:
- Error handling with set -e
- File existence checks
- External command execution (Python script)
- Text parsing with grep, awk, and cut
- Conditional logic with if statements
- Meaningful exit codes (0 = success, 1 = failure)
Script Execution Permissions
Unix-like systems (macOS, Linux) use a permission system to control who can read, write, or execute files. Before a shell script can be run, it must have execute permissions set.
Understanding File Permissions
File permissions are displayed by ls -l:
1 2 | |
The permission string -rwxr-xr-x breaks down as:
- File type:
-(regular file),d(directory),l(symbolic link) - Owner permissions:
rwx(read, write, execute) - Group permissions:
r-x(read, execute, no write) - Other permissions:
r-x(read, execute, no write)
Permission Notation
Permissions can be represented in two formats:
Symbolic notation:
1 2 3 | |
Numeric notation (octal):
1 2 3 | |
Common permission combinations:
| Octal | Symbolic | Meaning |
|---|---|---|
| 755 | -rwxr-xr-x | Owner can read/write/execute, others can read/execute |
| 644 | -rw-r--r-- | Owner can read/write, others can read only |
| 700 | -rwx------ | Owner can read/write/execute, others have no access |
| 775 | -rwxrwxr-x | Owner and group can read/write/execute, others can read/execute |
Making Scripts Executable
To make a script executable, use the chmod command:
1 2 3 4 5 6 7 8 | |
After setting execute permissions, the script can be run directly:
1 2 3 4 5 6 7 8 9 | |
Diagram: Permission Bits Visual Infographic
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | |
MicroSim Generator Recommendations:
- markdown table (best) - Permission notation reference doesn't require interactivity, table clearest
- microsim-p5 (85/100) - If interactive permission calculator needed, p5.js with inputs works well
- chartjs-generator (15/100) - Not designed for permission reference or calculators
Security Considerations
Execute permissions should be granted carefully:
- Only make scripts executable if they need to be run: Don't blindly
chmod +xall files - Review scripts before making them executable: Malicious scripts can damage systems
- Be cautious with scripts from untrusted sources: Always inspect before running
- Use least privilege: Grant minimum permissions necessary (e.g., 700 for personal scripts instead of 777)
Troubleshooting Permission Issues
Common permission-related errors:
Error: "Permission denied"
1 2 | |
1 | |
Error: "No such file or directory" when script exists
1 2 | |
1 | |
Symlink Creation
Symbolic links (symlinks) are special files that act as pointers to other files or directories, enabling multiple paths to access the same content. In intelligent textbook development, symlinks are used to install Claude skills globally while maintaining the skills in the project repository.
Why Use Symlinks for Skills?
Claude Code looks for skills in ~/.claude/skills/ by default. Without symlinks, you would need to:
- Copy skill files to
~/.claude/skills/every time they're updated - Maintain duplicate copies in each project
- Manually synchronize changes across projects
Symlinks solve this by creating a reference in ~/.claude/skills/ that points to the original skill files in the project repository. When the original files are updated, the changes are immediately reflected in all projects using that symlink.
Creating Symlinks
The ln command creates symbolic links:
1 2 3 4 5 6 7 8 | |
Flags:
- -s: Create symbolic link (not a hard link)
- -f: Force overwrite if link already exists
- -n: Don't dereference existing symlink (useful when updating)
Symlinks vs. Copies
Understanding the difference is crucial:
| Operation | Copy | Symlink |
|---|---|---|
| Storage | Duplicates content | Only stores pointer (~1KB) |
| Updates | Manual re-copy needed | Automatic (follows original) |
| Deletion | Independent files | Deleting symlink doesn't affect original |
| Portability | Works if original is deleted | Breaks if original is moved/deleted |
| Permissions | Uses copy's permissions | Uses original's permissions |
Verifying Symlinks
Use ls -l to see symlink targets:
1 2 | |
The -> arrow indicates this is a symlink pointing to the target path.
Managing Symlinks
List all symlinks in a directory:
1 | |
Check if a symlink target exists:
1 | |
Remove a symlink:
1 | |
Update a symlink to point to a new target:
1 | |
Project-Local vs. Global Skills
Claude Code supports two skill installation strategies:
Global skills (~/.claude/skills/):
- Available to all projects
- Ideal for stable, mature skills used across multiple textbooks
- Installed via scripts/install-claude-skills.sh
Project-local skills (.claude/skills/):
- Available only to the current project
- Ideal for experimental or project-specific skills
- Installed by creating .claude/skills/ directory in project root
The installation script can be modified to install to project-local directory by changing:
1 2 3 4 5 | |
Troubleshooting Symlinks
Problem: "Skill not found" error in Claude Code
Possible causes: 1. Symlink not created correctly 2. Target path is incorrect 3. Permissions issue on target directory
Solution:
1 2 3 4 5 6 7 8 | |
Problem: "Permission denied" when running skill
Solution:
1 2 | |
Diagram: Skill Installation Workflow Diagram
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
MicroSim Generator Recommendations:
- timeline-generator (97/100) - Project timeline showing phase progression is perfect vis-timeline use
- mermaid-generator (85/100) - Workflow flowchart showing capstone phases with decision points
- chartjs-generator (75/100) - Gantt-style timeline chart showing project phases and milestones
Capstone: Complete Textbook Project
The capstone project synthesizes all skills, tools, and workflows from this course by guiding you through the complete process of creating an intelligent textbook from initial concept to published website. This comprehensive project mirrors real-world educational content development and demonstrates your ability to apply course concepts independently.
Project Overview
You will create an intelligent textbook on a subject of your choice, following the complete workflow:
- Develop a comprehensive course description
- Generate a 200-concept learning graph with dependencies
- Design chapter structure based on concept dependencies
- Create chapter content with interactive elements
- Generate glossary, quiz, and FAQ content
- Build and deploy the textbook to GitHub Pages
The project typically requires 15-25 hours depending on textbook scope and prior experience. You are encouraged to choose a subject in which you have expertise, as domain knowledge significantly accelerates content creation.
Project Requirements
Your completed textbook must include:
Foundation (Required): - Course description meeting all quality criteria (score ≥ 85/100) - Learning graph with 200 concepts, validated dependencies (DAG structure), and taxonomy categorization - 6-12 chapters with clear concept mapping - MkDocs configuration with proper navigation
Content (Required): - At least 3 complete chapters with rich content (~3,000 words each) - Minimum 15 non-text elements across chapters (lists, tables, diagrams, MicroSims, etc.) - Glossary with 50+ terms following ISO 11179 standards - One complete chapter quiz (10+ questions, multiple Bloom's levels)
Interactive Elements (Choose at least 2): - At least one MicroSim demonstrating a key concept - At least one interactive infographic or timeline - Learning graph visualization using vis-network - FAQ page with 20+ questions
Deployment (Required): - GitHub repository with complete source files - Deployed website on GitHub Pages - README with project overview and build instructions
Phase 1: Course Design (3-5 hours)
Step 1: Course Description Development
Use the course-description-analyzer skill to create your course description:
1 2 | |
Your course description should specify: - Course title and target audience (reading level) - Prerequisites and assumed knowledge - Main topics covered (15-25 topics) - Topics explicitly out of scope (5-10 topics) - Learning outcomes across all six Bloom's Taxonomy levels
Quality check:
1 2 | |
Step 2: Learning Graph Generation
Use the learning-graph-generator skill to create your concept map:
1 | |
The skill will: - Enumerate 200 concepts from your course description - Map concept dependencies (directed acyclic graph) - Categorize concepts by taxonomy - Validate graph quality
Quality check:
1 2 3 4 5 | |
Step 3: Chapter Structure Design
Use the book-chapter-generator skill to design chapters:
1 | |
The skill creates chapter directories with: - Chapter title and summary - List of concepts covered in each chapter - Prerequisites linking to earlier chapters
Review: - Verify concept dependencies are respected (prerequisites taught before dependents) - Ensure even distribution (no chapter has >40 concepts) - Check that foundational concepts appear in early chapters
Phase 2: Content Creation (8-15 hours)
Step 4: Generate Chapter Content
For each chapter, use the chapter-content-generator skill:
1 2 | |
The skill generates:
- Detailed educational content at appropriate reading level
- Diverse non-text elements (lists, tables, diagrams)
- Specifications for complex elements (MicroSims, infographics) in <details markdown="1"> blocks
Minimum requirement: Complete 3 chapters with rich content
Step 5: Create Interactive Elements
Implement at least one MicroSim using the microsim-p5 skill:
1 | |
Choose a concept that benefits from interactive visualization, such as: - Algorithm visualization (sorting, graph traversal) - System behavior simulation (networking, resource allocation) - Parameter exploration (statistical distributions, optimization)
Step 6: Build Supporting Resources
Generate glossary:
1 | |
Generate chapter quizzes:
1 2 | |
Generate FAQ:
1 | |
Phase 3: Integration and Quality Assurance (2-4 hours)
Step 7: Configure MkDocs
Update mkdocs.yml navigation to include all content:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
Step 8: Test Locally
Build and serve the textbook locally:
1 2 3 4 5 6 7 | |
Quality checks: - All navigation links work - Images and MicroSims load correctly - No broken internal links - Consistent formatting across chapters - Glossary terms properly defined - Quiz questions display correctly
Step 9: Build Validation
Test strict build (fail on warnings):
1 | |
Fix any warnings or errors reported by MkDocs.
Phase 4: Deployment (1-2 hours)
Step 10: GitHub Repository Setup
Initialize Git repository (if not already done):
1 2 3 | |
Create GitHub repository and push:
1 2 3 4 5 | |
Step 11: Deploy to GitHub Pages
Configure GitHub Pages in repository settings: - Settings → Pages → Source: Deploy from branch - Branch: gh-pages - Folder: / (root)
Deploy using MkDocs:
1 | |
This command:
1. Builds the static site
2. Creates/updates gh-pages branch
3. Pushes to GitHub
4. Triggers GitHub Pages deployment
Wait 2-5 minutes for deployment to complete, then visit:
1 | |
Step 12: Documentation
Update README.md with:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
Project Structure
1 2 3 4 5 | |
License
[Your chosen license] ```
Project Evaluation Checklist
Use this checklist to verify project completeness:
Foundation: - [ ] Course description with quality score ≥ 85/100 - [ ] Learning graph with 200 concepts - [ ] Zero circular dependencies in learning graph - [ ] Learning graph quality score ≥ 70/100 - [ ] 6-12 chapters created with concept mapping - [ ] MkDocs configuration complete
Content: - [ ] At least 3 complete chapters (~3,000 words each) - [ ] 15+ non-text elements total across chapters - [ ] Glossary with 50+ ISO 11179-compliant terms - [ ] At least one complete chapter quiz (10+ questions)
Interactive Elements: - [ ] At least one MicroSim implemented and functional - [ ] At least one interactive infographic or timeline - [ ] Learning graph visualization (optional but recommended) - [ ] FAQ page with 20+ questions (optional)
Deployment: - [ ] GitHub repository created and pushed - [ ] Website deployed to GitHub Pages - [ ] All links functional in deployed site - [ ] README.md with complete documentation - [ ] No build warnings or errors
Quality: - [ ] Consistent markdown formatting across chapters - [ ] All images and MicroSims load correctly - [ ] No broken internal links - [ ] Mobile-responsive design (MkDocs Material default) - [ ] Search functionality works (MkDocs Material default)
Next Steps and Extensions
After completing the capstone project, consider these extensions:
Advanced Features: - Install learning graph viewer with interactive exploration - Add custom CSS styling to match your branding - Implement additional MicroSims for complex concepts - Create video walkthroughs of key topics - Add social media preview images
Collaboration: - Invite subject matter experts to review content - Set up GitHub Issues for feedback collection - Create contribution guidelines for open-source collaboration - Establish content review workflows
Analytics and Improvement: - Add Google Analytics to track visitor engagement - Monitor which pages receive most traffic - Identify chapters with high bounce rates for improvement - Survey learners for feedback
Publication: - Share on social media and educational platforms - Submit to open educational resources (OER) repositories - Present at conferences or webinars - Write blog post about development process
Summary
This chapter equipped you with the essential development tools and workflows for creating intelligent textbooks. You learned to use Visual Studio Code as a comprehensive content authoring platform, leveraging its integrated terminal, markdown preview, and Git integration. You mastered Bash command-line operations including directory navigation, file manipulation, and shell scripting for automation.
The capstone project challenged you to synthesize all course concepts by creating a complete intelligent textbook from concept to deployment. This comprehensive exercise demonstrated the end-to-end workflow: course description development, learning graph generation, chapter structuring, content creation, interactive element integration, quality assurance, and deployment to GitHub Pages.
By completing this chapter and capstone project, you have demonstrated proficiency in:
- Configuring professional development environments for technical content creation
- Executing command-line workflows for build automation and deployment
- Writing shell scripts to automate repetitive tasks
- Managing file permissions and symbolic links for skill installation
- Integrating all course skills into a coherent textbook development workflow
- Publishing educational content to production web platforms
You are now equipped to independently create intelligent, AI-enhanced textbooks that advance educational outcomes through structured knowledge graphs, interactive simulations, and adaptive learning resources.
References
-
Bash Scripting Tutorial – Linux Shell Script and Command Line for Beginners - 2024 - freeCodeCamp - Comprehensive tutorial covering Bash scripting fundamentals including variables, command execution, input/output handling, and debugging techniques, essential for automating intelligent textbook build and deployment workflows.
-
Automating Tasks With Bash Scripts - 2024 - Linux Handbook - Practical guide to creating Bash automation scripts with real-world examples including user management, backup automation, and system administration tasks, demonstrating automation principles applicable to textbook development workflows and skill installation.