Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
8294dde
chore(scenarios): deep-link KB Resolution Steps and Lab Verification …
iplaycomputer Sep 28, 2025
ecfb6f5
chore(pr-template): add anti-duplication + deep-link checks; lab/KB/s…
iplaycomputer Sep 28, 2025
4297b9f
ci: add markdownlint workflow + config; chore: add CODEOWNERS for rev…
iplaycomputer Sep 28, 2025
608bed4
fix(docs): satisfy markdownlint MD022/MD032 in copilot-instructions
iplaycomputer Sep 28, 2025
744b06c
ci(markdownlint): add .markdownlint-cli2.jsonc to ensure config disco…
iplaycomputer Sep 28, 2025
655986a
ci(markdownlint): temporarily relax strict rules (MD012, MD022, MD023…
iplaycomputer Sep 28, 2025
3550c95
lint(strict): fix MD022/MD023/MD031 in labs; restore strict markdownl…
iplaycomputer Sep 28, 2025
397f801
lint(strict): fix MD022/MD032 blanks around headings/lists in scenari…
iplaycomputer Sep 28, 2025
7b7c8b6
lint(strict): convert bold labels to ATX headings; fix trailing/multi…
iplaycomputer Sep 28, 2025
df3748e
lint(strict): normalize ticket template headings; add editor guardrai…
iplaycomputer Sep 28, 2025
cd61b9c
chore(lint): align markdownlint config and editor guardrails
iplaycomputer Sep 28, 2025
18c2667
fix(markdown): minimal lint fixes
iplaycomputer Sep 28, 2025
893db14
chore(markdownlint): minimal sweep
iplaycomputer Sep 28, 2025
e9b6698
docs(markdown): update scenarios and tickets (user edits + spacing fi…
iplaycomputer Sep 28, 2025
63429a1
chore(markdown): minimal spacing fixes to satisfy markdownlint
iplaycomputer Sep 29, 2025
3715fee
docs: incorporate manual edits and keep markdownlint green
iplaycomputer Sep 29, 2025
bab74c5
fix(labs): satisfy markdownlint in nginx-startup-fail and print-queue…
iplaycomputer Sep 29, 2025
e67beb7
chore(ci): make PR template markdownlint-compliant (MD022/MD032)
iplaycomputer Sep 29, 2025
09d3379
ci(markdownlint): ignore .github/*.md to loosen restrictions for PR t…
iplaycomputer Sep 29, 2025
eb15fda
fix(markdownlint): add required blank lines, fix list/fence spacing, …
iplaycomputer Sep 29, 2025
4788f69
style(markdownlint): allow incrementing ordered lists (MD029 style: o…
iplaycomputer Sep 29, 2025
721995f
Merge branch 'main' into chore/deep-links-scenarios
iplaycomputer Sep 29, 2025
dbc87ca
fix(markdownlint): spacing around headings/lists/fences and minor lis…
iplaycomputer Sep 29, 2025
41e07fd
chore: stage trailing edits in CONTRIBUTING and lamp-osticket-setup
iplaycomputer Sep 29, 2025
68911fc
fix(kb-template): remove extra blank line (MD012)
iplaycomputer Sep 29, 2025
9d07f5b
fix(kb-template): normalize EOF whitespace/newlines (MD012)
iplaycomputer Sep 29, 2025
bbf56e2
docs(contributing): add optional local lint + pre-commit hook tip
iplaycomputer Sep 29, 2025
de92539
chore: sync kb template whitespace (no-op)
iplaycomputer Sep 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# EditorConfig helps maintain consistent coding styles
root = true

[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8

[*.md]
# Keep Markdown tidy; code blocks remain untouched by trim rule exceptions
trim_trailing_whitespace = true
8 changes: 8 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Require review from maintainers for key areas
* @iplaycomputer

# Optional: expand with more granular ownership as project grows
# /kb/ @iplaycomputer
# /labs/ @iplaycomputer
# /tickets/ @iplaycomputer
# /scenarios/ @iplaycomputer
32 changes: 30 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,52 @@
## Summary
## Summary

Briefly describe what this PR adds or changes.

## Linked Artifacts (relative paths)

- Ticket(s): /tickets/[file].md
- KB: /kb/[file].md
- Lab: /labs/[file].md (optional)
- Scenario: /scenarios/[file].md (optional)

## Checklists

- Content
- [ ] Uses the correct template (copied from 000.*-template.md)
- [ ] Clear, reproducible steps and plain language
- [ ] Relative links resolve inside the repo
- [ ] Avoid duplication across modules (KB = productized steps; Lab = full commands + Verification; Scenario = flow/success, links only)
- [ ] Deep link to sections where applicable (KB → #resolution-steps, Lab → #verification)
- Metadata
- [ ] Owner set; Last Reviewed and Next Review Due (KB/Lab)
- [ ] Escalation Path filled (Ticket)
- [ ] Metrics block added if useful (see docs/METRICS.md)
- Quality
- [ ] Verification steps included (expected outputs / pass-fail)
- [ ] Scenario (if present) ties Ticket → KB → Lab and defines success criteria
- [ ] Anchors exist and resolve (KB “Resolution Steps”, Lab “Verification”)
- [ ] Scenario (if present) ties Ticket → KB → Lab and defines success criteria

### Labs (if included)

- [ ] Dedicated “Verification” section with expected outputs
- [ ] Images pinned if using containers; HTTP services include a simple healthcheck when applicable
- [ ] Assets stored under `labs/<lab>/assets/`

### KBs (if included)

- [ ] Brief (1–2 lines) verification; link to related Lab for full commands

### Scenarios (if included)

- [ ] Uses deep links to KB “Resolution Steps” and Lab “Verification” (no step duplication)

## Notes

Add screenshots, logs, or context as needed.

## How to Verify (for reviewers)

- Click Related KB/Lab links and confirm they jump to the correct anchors.
- If a Lab changed, run the Verification steps and confirm expected outputs.
- Check that no personal IPs or credentials are included; use `<vm-ip>` placeholders.

18 changes: 13 additions & 5 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
# Copilot Instructions for DeskForge-Simulator
# Copilot Instructions for DeskForge-Simulator

This repo simulates real helpdesk workflows using Markdown contributions. Agents should prioritize clarity, reproducibility, and alignment with the troubleshooting standards in `CONTRIBUTING.md`.

## Big Picture

- Four modules map to real workflows:
- Tickets (`/tickets/`): user-reported issues
- Knowledge Base (`/kb/`): solution docs derived from tickets
- Labs (`/labs/`): hands-on practice exercises
- Scenarios (`/scenarios/`): end-to-end flows linking ticket KB lab
- Scenarios (`/scenarios/`): end-to-end flows linking ticket → KB → lab
- Use templates in each folder (`000.*-template.md`).

## Key Files

- `CONTRIBUTING.md`: Primary standards, workflows, and references (CompTIA A+ model, escalation, templates).
- `docs/lamp-osticket-setup.md`: Optional local osTicket setup to test tickets/KBs.
- `docs/ROLES.md`: Lightweight tiers, escalation cues, and ownership metadata.
- `docs/METRICS.md`: Simple fields for MTTR, recurrence, and verification.
- `README.md`: Project overview and contribution on-ramp.

## Authoring Patterns
- Follow CompTIA A+ 6-step model: Identify → Theory → Test → Plan/Implement → Verify → Document.

- Follow CompTIA A+ 6-step model: Identify → Theory → Test → Plan/Implement → Verify → Document.
- Keep language plain and steps reproducible. Include environment details (OS/version), verification, and escalation path.
- Link artifacts with relative paths (e.g., `/tickets/printer-failure.md` in KB/Lab/Scenario).
- Use checklists for Tier 1/2/3 completion; mark what you actually did.
Expand All @@ -28,22 +31,27 @@ This repo simulates real helpdesk workflows using Markdown contributions. Agents
- Scenarios should express flow and success criteria, linking to KB "Resolution Steps" and Lab "Verification" sections (use deep links like `/kb/foo.md#resolution-steps` and `/labs/bar.md#verification`).

## Workflows

- Propose in Discussions: draft tickets/KBs/labs in appropriate categories.
- Land changes via PRs adding Markdown under `/tickets`, `/kb`, `/labs`, `/scenarios`.
- Labs should be verifiable on a Linux VM or container; osTicket is optional.

## Examples from Repo

- Templates: `kb/000.kb-template.md`, `labs/000.lab-template.md`, `tickets/000.ticket-template.md`, `scenarios/000.scenario-template.md`.
- osTicket URLs referenced use `http://<vm-ip>/osticket/` and `.../scp` for staff; replace `<vm-ip>` locally and do not share it publicly.

## Conventions

- Filenames: use kebab-case, concise, and descriptive (e.g., `printer-spooler-restart.md`).
- Metadata blocks: include Category, Environment, Owner, Reviewed dates when applicable.
- References: cite external docs in a final section; prefer vendor support links.

## What NOT to do
- Don’t invent infrastructure or public endpoints; this repo is markdown-only.
- Don’t add personal IPs or credentials.

- Don’t invent infrastructure or public endpoints; this repo is markdown-only.
- Don’t add personal IPs or credentials.

---
Clarifications welcome: if any folder structure or template changes, update this file to match.

19 changes: 19 additions & 0 deletions .github/workflows/markdownlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: markdownlint

on:
pull_request:
push:
branches: [ main ]

jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run markdownlint-cli2
uses: DavidAnson/markdownlint-cli2-action@v16
with:
globs: |
**/*.md
14 changes: 14 additions & 0 deletions .markdownlint-cli2.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
// Inherit rules from .markdownlint.jsonc and set default globs
"config": {
// Extend the base markdownlint rules from repo root
"extends": ".markdownlint.jsonc"
},
"globs": ["**/*.md"],
"ignores": [
"**/node_modules/**",
".git/**",
// Loosen restrictions only for repo meta/docs under .github (e.g., PR template)
".github/**/*.md"
]
}
17 changes: 16 additions & 1 deletion .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -1 +1,16 @@
{\n "MD029": {\n "style": "ordered"\n }\n}
{
// Allow long lines in code blocks and tables
"MD013": false,
// Allow consecutive headings in templates/checklists
"MD025": false,
// Allow inline HTML when needed (README badges)
"MD033": false,
// Allow trailing spaces (soft line breaks) to preserve authoring style
"MD009": false,
// Allow non-heading first lines (some files are not articles)
"MD041": false,
// Temporarily disable strict fragment validation to reduce false positives on deep-links
"MD051": false,
// Prefer incrementing ordered lists (1/2/3) to avoid renumbering churn
"MD029": { "style": "ordered" }
}
6 changes: 6 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"recommendations": [
"DavidAnson.vscode-markdownlint",
"EditorConfig.EditorConfig"
]
}
9 changes: 9 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.eol": "\n",
"[markdown]": {
"editor.formatOnSave": true,
"markdownlint.fix.onSave": true
}
}
Loading