initialize copilot-instructions
This commit is contained in:
@@ -0,0 +1,92 @@
|
|||||||
|
# Copilot Instructions — itc.pidi-3-docs
|
||||||
|
|
||||||
|
LaTeX-Dokumentation für **PidI 3** (Praktikum in der Industrie, 3. Durchlauf) von
|
||||||
|
Linus Nagel, ITC Dortmund / WorkSimple GmbH.
|
||||||
|
|
||||||
|
**Status:** Das Repository ist noch leer (kein Commit auf `main`). Struktur, Klasse und
|
||||||
|
Build-Setup werden aus `~/repos/itc.pidi-2-docs` übernommen. Dort nachschlagen, bevor
|
||||||
|
etwas neu erfunden wird.
|
||||||
|
|
||||||
|
## Projektinhalt
|
||||||
|
|
||||||
|
Thema: **Houston „Dokumente"** — ein kundenseitiger Dokumentenbereich im Kundenportal
|
||||||
|
Houston (ASP.NET Core, Razor Pages), der Dokumente aus einem S3-Speicher
|
||||||
|
(NetApp StorageGRID, betrieben von Advanced Unibyte) ausliefert. Kernthemen:
|
||||||
|
Document Explorer, Suche (S3 SelectObject), Typfilter, Icons, PDF-Preview-Modal,
|
||||||
|
Einzel- und ZIP-Download, Share-Link-Previews, `.url`-Dateien, Pagination,
|
||||||
|
automatische Anlage der Kundenordnerstruktur, Kundenordner-Lookup über Efecte-Namen.
|
||||||
|
|
||||||
|
Zentraler Architekturkonflikt (in der Doku als Problemstellung relevant): Houston
|
||||||
|
autorisiert über die **Efecte Company-ID**, das CSM pflegt S3-Ordner aber über den
|
||||||
|
**Kundennamen**; S3 bietet keinen Lookup über Metadatenfelder.
|
||||||
|
|
||||||
|
## Quellenlage: Zettelkasten
|
||||||
|
|
||||||
|
Sämtliches Rohmaterial (Teams-Nachrichten, E-Mails, Azure-DevOps-Items) liegt in
|
||||||
|
`~/zettelkasten/Notes/`. Einstieg ist immer die **Hubnote `note-1779659534579.md`**
|
||||||
|
(„Praktikum in der Industrie - PIDI 3"). Von dort verlinkt:
|
||||||
|
|
||||||
|
- `note-1787656700350` — chronologische Teams-/E-Mail-Absprachen
|
||||||
|
- `note-1787657238720` — Azure-DevOps-Historie: Feature 484, PBIs 9294–10134, PRs 2154–2196,
|
||||||
|
Chronologie und Beteiligte; verlinkt Einzelnoten pro PBI/PR mit Original-Kommentaren,
|
||||||
|
Review-Diskussionen und einem Abschnitt „Erkenntnisse für die Doku"
|
||||||
|
- Session-Notizen zu Absprachen, Feature-Analyse und S3-Recherche
|
||||||
|
|
||||||
|
Noten sind über `note-<id>.md` verlinkt; IDs immer per Dateiname auflösen, nicht raten.
|
||||||
|
Inhalte aus Notizen sind Primärquelle — keine Projektfakten, Namen oder Daten erfinden.
|
||||||
|
|
||||||
|
## Formale Anforderungen (PidI 3)
|
||||||
|
|
||||||
|
- 10 ECTS, **24 Manntage / 192 Arbeitsstunden** (doppelt so viel wie PidI 1/2)
|
||||||
|
- **mindestens 40 Seiten** Kerninhalt (Verzeichnisse zählen nicht mit)
|
||||||
|
- Die `\confirmationpage` in `pidi-thesis.cls` nennt in PidI 2 noch „12 Manntage" —
|
||||||
|
für PidI 3 auf 24 anpassen. Ebenso `\course` (Default `Praktikum in der Industrie (PidI 1)`).
|
||||||
|
- Abgabedateiname: `<Nachname> PidI 3 <Kurzform des Titels>.pdf`
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
Nix + direnv (`.envrc` = `use nix`), `shell.nix` liefert TeX Live, `latexrun`,
|
||||||
|
`mermaid-cli` und Times Newer Roman (wird per `shellHook` nach
|
||||||
|
`~/.local/share/fonts/` kopiert — Fontconfig findet den Nix-Store-Pfad sonst nicht).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
direnv allow # einmalig
|
||||||
|
latexmk # .latexmkrc: lualatex ($pdf_mode=4), biber, $out_dir=out
|
||||||
|
latexmk -c # aufräumen
|
||||||
|
```
|
||||||
|
|
||||||
|
- Ausgabe landet in `out/`; `out/`, `.direnv/` sind gitignored.
|
||||||
|
- `minted` wird verwendet → LuaLaTeX braucht Shell-Escape (`-shell-escape`), sonst
|
||||||
|
brechen die Code-Listings.
|
||||||
|
- `.biber.conf` zeigt Biber auf `out/` als In- und Output-Verzeichnis.
|
||||||
|
|
||||||
|
## Struktur & Konventionen
|
||||||
|
|
||||||
|
```
|
||||||
|
main.tex Einstieg: Metadaten + \input aller Kapitel
|
||||||
|
pidi-thesis.cls erzwingt das komplette Layout — Formatierung gehört hierhin, nicht in Kapitel
|
||||||
|
frontmatter/ abstract, acknowledgments, usage-of-ai
|
||||||
|
chapters/<teil>/*.tex je eine Datei pro \section
|
||||||
|
appendix/ appendix.tex bündelt tables/diagrams/pics/code
|
||||||
|
figures/code/*.cs|... Quelltext-Ausschnitte als echte Dateien (kein inline-Code)
|
||||||
|
references.bib biblatex/biber
|
||||||
|
```
|
||||||
|
|
||||||
|
Kapitelgliederung aus PidI 2 (als Vorlage weiterverwenden):
|
||||||
|
`company` → `overview` → `execution` (preparation, requirements, backlog,
|
||||||
|
implementation, testing, releases, time-man) → `closure` (evaluation, outlook) → Anhang.
|
||||||
|
|
||||||
|
- **Sprache: Deutsch** (`\selectlanguage{ngerman}`), sachlich-formal, Vergangenheitsform.
|
||||||
|
- Kapiteldateien beginnen mit `\section{...}` + `\label{sec:...}`; Nummerierung und
|
||||||
|
Reihenfolge steuert ausschließlich `main.tex`.
|
||||||
|
- Label-Präfixe: `sec:`, `fig:`, `tab:`, `chap:`.
|
||||||
|
- `\emph{}` ist auf **fett** umdefiniert — kursiv gibt es nicht.
|
||||||
|
- Bezeichner, Klassen, Dateinamen im Fließtext in `\texttt{}`; `#` in C\# escapen (`C\#`).
|
||||||
|
- Code-Listings: Datei unter `figures/code/` ablegen und im Anhang per
|
||||||
|
`\captionof{listing}{...}` + `\label{fig:...}` + `\inputminted[breaklines, fontsize=\small]{<lang>}{...}`
|
||||||
|
in einer `center`-Umgebung einbinden, getrennt durch `\vfill`. Im Fließtext nur
|
||||||
|
per `Abbildung~\ref{fig:...}` referenzieren.
|
||||||
|
- Tabellen: `tabularx` + `booktabs` (`\toprule`/`\midrule`/`\addlinespace`/`\bottomrule`), `[H]`.
|
||||||
|
- `frontmatter/usage-of-ai.tex` ist Pflicht und muss die tatsächliche KI-Nutzung
|
||||||
|
wahrheitsgemäß auf die erlaubten Zwecke (LaTeX-Syntax, Umformulierung eigener Inhalte)
|
||||||
|
eingrenzen.
|
||||||
Reference in New Issue
Block a user