docs

SkillDocs & knowledge

Create and maintain human readable documentation. Auto-invoke when user mentions docs, documentation or manual. Do NOT load for api docs or api reference or docs blocks in code.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the docs skill

What this skill tells your AI

The instructions your AI receives, as published by tine-groupware/tine in .agents/skills/docs/SKILL.md and read by ahel’s review.

Tooling

  • Create and maintain human readable documentation.
  • All contents is in /docs folder and below
  • Uses mkdocs to generate the docs
  • mkdocs.yaml is in the root of the project
  • local build is part of the dev setup activated by 'docs' in pullup.json config
  • build is done by local docker container
  • Dockerfile for the container is in the /docs folder
  • build of docs can be accessed at https://docs.local.tine-dev.de/

Screenshots

  • Screenshots of the docs are captured by the end-to-end tests and uploaded in on other process.
  • Screenshots are available in 5 different sizes
  • Screenshots are available in dark and light mode

Personas

Docs are structured into main subfolders for the following personas:

  • ./admins Adminsitrators having full rights in the software. Sometimes also called KeyUsers. Normally they don't have root or shell access. The often define how users should use the software. Admins might not be albe to configure all documented features due to missing rights or license limitations.
  • ./developers Developers of the software system
  • ./operatos People operating the software. Having shell access with full rights in the hosting environment.
  • ./users End users without special technical knowledge. Users might not be able to use all the documented features due to missing rights or license limitations.

User Manual

  • A special section of the user documemtation is the manual (./users/manual)
  • The manual is available via help and manual buttons within the software.
  • When the manual is opened, the software computes a context where the user is located in the software.
  • This context is used to jump to the most appropriate entry point in the user manual

Contexts in documentation

  • Contexts are invisible markers in the documentation articles
  • See docs/hooks/build_context_map.py for details:
    • In text:
    • In headings: ### Anhänge verwalten { #attachments data-ctx="/Addressbook/EditDialog/Contact/AttachmentsGrid" }
  • In the build process the file context-map.json is created which maps contexts to articles/anchors.
  • The user manual searches for the nearest existing context in the map.

Contexts in code

  • Contexts are defined in javascript code joining the canonicalName of each component in the componten tree.
  • see Tinebase/js/CanonicalPath.js for details.
  • Example:/Addressbook/EditDialog/Contact/AttachmentsGrid:
    • /Addressbook/EditDialog/Contact - this canonicalName is created by Tinebase/js/widgets/dialog/EditDialog.js
      • it means user is in applicatin Addressbook and in dialog EditDialog for the recordClass Contact
    • AttachmentsGrid is a sub component (tabPanel) Tinebase/js/widgets/dialog/AttachmentsGridPanel.js

Article order

  • Each Application should have a user manual article.
  • As different branches contain different applications, there is no static file to include articles and define order.
    • Order of articles is defined by names. Naming convention of articles is <XX>_<Appname>.md where XX are two letters defining the order.

Article overview

  • in the build process the file index.md is created which has entry point tiles for all apps/articles
  • Each tile has the app icon for easy reference.

Signals

GitHub stars
22
Forks
4
Last commit
Sep 2026
Hacker News mentions
20
Advanced
Catalog kind
skill
Gateway key
docs-tine-groupware
Source
github.com/tine-groupware/tine