Upload files to "/"

This commit is contained in:
2026-10-10 01:17:04 +00:00
parent d2167d642f
commit deb16f7302
5 changed files with 493 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+5
View File
@@ -0,0 +1,5 @@
This assignment guides students through a reproducible DevOps activity. It
defines the learning objectives, environment boundary, workflow, evidence,
reflection, and submission criteria. Replace bracketed text with assignment-
specific facts before release. Students should be able to recreate the work
from the submitted automation and runbook rather than from undocumented manual steps.
+367
View File
@@ -0,0 +1,367 @@
%%
%% This is file `cornell.cls',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% cornell.dtx (with options: `class')
%%
%% IMPORTANT NOTICE:
%%
%% For the copyright see the source file.
%%
%% Any modified versions of this file must be renamed
%% with new filenames distinct from cornell.cls.
%%
%% For distribution of the original source see the terms
%% for copying and modification in the file cornell.dtx.
%%
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
%% Document class `cornell' to use with LaTeX 2e.
%% Based on `crnlphd' class. The following is from the file `crnlphd.dtx':
%% Based loosely on old cuphdthesis style file.
%% Found to give good results, according to the thesis secretary.
%% File: crnlphd.dtx Copyright (C) 1994 Sergio Gelato
%% Made available without any warranty, express or implied.
%% Modifications
%% 03/26/98 Mike Heisler
%% Conform to Eric's final version. Margins are subject to
%% The whim of the printer.
%% 10/10/97 Mike Heisler and Eric Dahl
%% Altered footnotesize and changed the Acknowledgement and
%% Biographical titles per thesis secretary guideline that
%% they must match the rest of the document, i.e. flush left
%% and capitalized rather than all caps
%% 05/21/97 Mike Heisler
%% Added a 'papers' option to handle bibliographis as sections
%% at the end of each chapter. Reduced top margin.
%%
%% $Id$
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
\NeedsTeXFormat{LaTeX2e}[1995/12/01]
\ProvidesClass{cornell}
[1998/03/26 v2.0
Cornell University thesis class]
\newif\ifphd
\DeclareOption{phd}{\phdtrue}
\DeclareOption{master}{\phdfalse}
\ExecuteOptions{phd}
\newif\ifpapers
\DeclareOption{papers}{\paperstrue}
\DeclareOption{10pt}{%
\OptionNotUsed%
\ClassWarningNoLine{cornell}{Font size 10pt not allowed; using 12pt}%
}
\DeclareOption{11pt}{%
\OptionNotUsed%
\ClassWarningNoLine{cornell}{Font size 11pt not allowed; using 12pt}%
}
\newcommand{\prelim@contents}[1]{}
\DeclareOption{tocprelim}{%
\renewcommand{\prelim@contents}[1]{\addcontentsline{toc}{section}{#1}}
}
\DeclareOption*{%
\PassOptionsToClass{\CurrentOption}{report}%
}
\ProcessOptions
\LoadClass[12pt]{report}[1994/06/01]
\renewcommand{\defaultscriptratio}{.75}
\renewcommand{\defaultscriptscriptratio}{.6}
\setlength\headsep{25\p@}
\if@twocolumn
\else
\setlength\oddsidemargin{0in}
\setlength\evensidemargin{0in}
\setlength\textwidth{6.5in}
\setlength\topmargin{-0.5in}
\setlength\headheight{0.2in}
\setlength\headsep{0.35in}
\setlength\textheight{8.85in}
\setlength\footskip{0.5in}
\setlength\marginparwidth{0.85in}
\setlength\marginparsep{0.125in}
\fi
\if@compatibility
\setlength\topmargin{0\p@}
\else
\fi
\newcommand{\ps@cornell}{%
\def\@oddhead{{\slshape\rightmark}\hfil\thepage}%
\def\@oddfoot{}%
\def\@evenhead{\thepage\hfil{\slshape\leftmark}}%
\def\@evenfoot{}%
\def\chaptermark##1{}%
\def\sectionmark##1{}%
}
\newcommand{\ps@cornellc}{%
\def\@oddhead{\hfil\thepage\hfil}%
\def\@oddfoot{}%
\def\@evenhead{\@oddhead}%
\def\@evenfoot{}%
\def\chaptermark##1{}%
\def\sectionmark##1{}%
}
\raggedbottom
\newcommand{\@prolformat}[1]{{\begin{flushleft} \Huge #1 \end{flushleft}} }
\newcommand{\ackname}{\@prolformat{Acknowledgements}}
\newcommand{\bioname}{\@prolformat{Biographical Sketch}}
\renewcommand{\contentsname}{\@prolformat{Table of Contents}}
\renewcommand{\listtablename}{\@prolformat{List of Tables}}
\renewcommand{\listfigurename}{\@prolformat{List of Figures}}
\renewcommand{\l@figure}{\@dottedtocline{1}{1.5em}{2.6em}}
\let\l@table\l@figure
\renewenvironment{thebibliography}[1]
{\ifpapers \clearpage \section*{\bibname%
\@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}%
\else%
\chapter*{\bibname%
\@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}%
\fi%
\list{\@biblabel{\arabic{enumiv}}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\arabic{enumiv}}}%
\sloppy\clubpenalty4000\widowpenalty4000%
\sfcode`\.\@m\relax
\ifpapers%
\addcontentsline{toc}{section}{\bibname}%
\else%
\addcontentsline{toc}{chapter}{\bibname}%
\fi
\singlespacing}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\normalspacing
\endlist}
\newcommand{\@titlesize}{\Large}
\newcommand{\@subtitlesize}{\large}
\newcommand{\@authorsize}{\normalsize} % No Pharaoh he.
\newcommand{\@conferralmonth}{January}
\newcommand{\@conferralyear}{}
\newcommand{\titlesize}[1]{\renewcommand{\@titlesize}{#1}}
\newcommand{\subtitlesize}[1]{\renewcommand{\@subtitlesize}{#1}}
\newcommand{\authorsize}[1]{\renewcommand{\@authorsize}{#1}}
\newcommand{\conferraldate}[2]{%
\renewcommand{\@conferralmonth}{#1}
\renewcommand{\@conferralyear}{#2}
}
\newcommand{\@degreefield}{Master of Science} %CHANGED
\newcommand{\degreefield}[1]{\renewcommand{\@degreefield}{#1}} %CHANGED
\renewcommand{\maketitle}{%
\begin{titlepage}%
\vspace*{-0.24in}
\begin{center}%
\@titlesize \@title
\end{center}
\vfill
%\begin{center}
%\@subtitlesize
%A \ifphd Dissertation \else Thesis \fi \\ %CHANGED
%Presented to the Faculty of the Graduate School \\
%of Cornell University \\
%in Partial Fulfillment of the Requirements for the Degree of \\
%\ifphd Doctor of Philosophy \else \@degreefield \fi %CHANGED
%\end{center}
\vfill
\begin{center}
\@authorsize
by \\
\@author \\
\@conferralmonth\ \@conferralyear
\end{center}
\vspace*{0.26in}
\end{titlepage}
}
\renewenvironment{titlepage}{%
\typeout{Title page}
\pagestyle{empty}
\doublespacing
}{%
\normalspacing\clearpage
}
\newenvironment{copyrightpage}{%
\typeout{Copyleft page}
\pagestyle{empty}
\null\vfil
\begin{center}
}{%
\end{center}
\vfil\null
\clearpage
}
\newcommand{\makecopyright}{%
\begin{copyrightpage}
\copyright\ \@copyrightholder\ \@copyrightyear \\
ALL RIGHTS RESERVED \\[.5in]
\end{copyrightpage}
}
\newcommand{\@copyrightholder}{\@author}
\newcommand{\@copyrightyear}{\@conferralyear}
\newcommand{\copyrightholder}[1]{\renewcommand{\@copyrightholder}{#1}}
\newcommand{\copyrightyear}[1]{\renewcommand{\@copyrightyear}{#1}}
\newlength{\@abhdskip}
\renewenvironment{abstract}{%
\typeout{Abstract}
\singlespacing
\ifphd %CHANGED
\setlength{\@abhdskip}{.25in}
\addtolength{\@abhdskip}{-\topmargin}
\vspace*{\@abhdskip}
\begin{center}
\@abstracttitle \\
\ \\
\@author \\
\@conferralyear
\end{center}
\vspace{.25in}
\else %CHANGED
\chapter*{%
\begin{center}
\normalsize
ABSTRACT
\end{center}
}
\par
\fi %CHANGED
\pagestyle{empty}
\thispagestyle{empty}
}{%
\clearpage
}
\newcommand{\@abstracttitle}{\@title}
\newcommand{\abstracttitle}[1]{\renewcommand{\@abstracttitle}{#1}}
\newenvironment{biosketch}{%
\typeout{Vita}
\pagestyle{plain}
\pagenumbering{roman}
\setcounter{page}{3}
\prelim@contents{Biographical Sketch}
\chapter*{%
\bioname
}
\par
}{%
\clearpage
}
\newenvironment{dedication}{%
\prelim@contents{Dedication}
\null\vfil
\begin{center}
}{
\end{center}
\vfil\null
\clearpage
}
\newenvironment{acknowledgements}{%
\prelim@contents{Acknowledgments}
\chapter*{%
\ackname
}
\par
}{%
\cleardoublepage
}
\newcommand{\contentspage}{%
\singlespacing
\label{toc}
\prelim@contents{\contentsname}
\tableofcontents
\normalspacing
\clearpage
}
\newcommand{\tablelistpage}{%
\singlespacing
\label{lot}
\prelim@contents{\listtablename}
\listoftables
\normalspacing
\clearpage
}
\newcommand{\figurelistpage}{%
\singlespacing
\label{lof}
\prelim@contents{\listfigurename}
\listoffigures
\normalspacing
\clearpage
}
\newcommand{\abbrlist}{%
\singlespacing
\prelim@contents{List of Abbreviations}
\chapter*{List of Abbreviations}
}
\newcommand{\symlist}{%
\singlespacing
\prelim@contents{List of Symbols}
\chapter*{List of Symbols}
}
\newcommand{\preface}{%
\singlespacing
\prelim@contents{Preface}
\chapter*{Preface}
}
\newcommand{\singlespacing}{%
\let\CS=\@currsize\renewcommand{\baselinestretch}{1.0}\tiny\CS}
\newcommand{\singlespacingplus}{%
\let\CS=\@currsize\renewcommand{\baselinestretch}{1.25}\tiny\CS}
\newcommand{\doublespacing}{%
\let\CS=\@currsize\renewcommand{\baselinestretch}{1.75}\tiny\CS}
\newcommand{\realdoublespacing}{%
\let\CS=\@currsize\renewcommand{\baselinestretch}{2}\tiny\CS}
\newcommand{\normalspacing}{\doublespacing}
\newcommand{\footnotespacing}{\singlespacing}
\newcommand{\changespacing}[2]{%
\renewcommand{#1}{%
\let\CS=\@currsize\renewcommand{\baselinestretch}{#2}\tiny\CS}%
}
\newcommand{\changenormalspacing}[1]{\renewcommand{\normalspacing}{#1}}
\normalspacing
\endinput
%%
%% End of file `cornell.cls'.
+107
View File
@@ -0,0 +1,107 @@
\chapter{AI Agent Usage Guide}
\ChapterLabel{AIAgentGuide}
\index{AI agent}
\index{AI agent!DevOps workflow}
\index{Appendix!AI Agent Usage Guide}
\section{How to Use This Appendix}
An AI agent that creates, reviews, or maintains an assignment shall read this
file first. It shall identify the task in the routing table, read the minimum
authoritative sources, and expand context only for a discovered dependency or
inconsistency. This guide is maintained in LaTeX so it is visible, versioned,
and reviewable with the assignment.
\section{Governing Principles}
The authored LaTeX files, versioned automation, and approved assignment
materials are authoritative. The PDF is a review artifact and shall not be
edited directly. AI may draft, explain, analyze, check consistency, and assist
with builds. It shall not invent completion, evidence, access, costs, grades,
approvals, command output, security posture, or operational results.
\section{Chapter File Convention}
\index{AI agent!chapter file convention}
Every assignment chapter shall be stored in exactly one file named with the
\texttt{devops} prefix, a PascalCase chapter name, and the \texttt{.tex}
suffix. For example, Chapter~2 is fully contained in
\path{devopsExampleAssignment.tex}. A chapter file shall begin with its
\texttt{\string\chapter\{...\}} command and contain all of that chapter's
sections and subsections. Do not split one chapter across files, create
section-only \texttt{.tex} files, or use \texttt{\string\input} or
\texttt{\string\include} to assemble a chapter from smaller fragments.
Supporting non-chapter files may use a different name only when they are not
chapter content: \texttt{prologue.tex}, \texttt{abstract.tex},
\texttt{devopsGlossary.tex}, and \texttt{devopsReferences.bib} are examples.
Appendix chapters follow the same chapter-file convention.
\section{AI Quick Start}
\begin{enumerate}
\item Read this guide and identify the requested outcome.
\item Select the closest task below and load only its listed sources.
\item Inspect supplied facts and report consequential gaps or assumptions.
\item Make narrowly scoped changes; preserve stable IDs, glossary terms, and history.
\item Never request, print, store, or commit credentials, tokens, personal data, or production data.
\item Build the complete PDF, inspect the log, visually inspect affected pages, and record material AI use in \ChapterRef{AIPromptLog}.
\end{enumerate}
\section{Task Routing}
\small
\begin{tabularx}{\linewidth}{L{4.0cm}Y}
\caption{AI Task-Routing Table\label{Table:AITaskRouting}}\\
\toprule \textbf{Task} & \textbf{Minimum authoritative sources}\\ \midrule
Initialize an assignment & \texttt{devopsAssignment.tex}, \texttt{prologue.tex}, \texttt{devopsIntroduction.tex}, \texttt{devopsExampleAssignment.tex}, and the instructor's assignment facts.\\
Develop a workflow & \texttt{devopsExampleAssignment.tex}, source repository materials, and authorized environment constraints.\\
Define evidence & \texttt{devopsExampleAssignment.tex} and controlled execution outputs.\\
Review a retrospective & \texttt{devopsExampleAssignment.tex} and the submitted workflow or runbook.\\
Edit AI guidance & \texttt{devopsAIAgentGuide.tex}, \texttt{devopsAIPromptLog.tex}, \texttt{devopsDocumentGuide.tex}, and \texttt{devopsAssignment.tex}.\\
Compile or troubleshoot & \texttt{devopsAssignment.tex}, \texttt{devopsDocumentGuide.tex}, the affected chapter, and the build log.\\ \bottomrule
\end{tabularx}
\normalsize
\section{DevOps-Specific Rules}
\begin{enumerate}
\item Prefer versioned, repeatable automation over undocumented manual steps.
\item Treat deployment output, monitoring data, and screenshots as evidence only when they reflect an actual execution.
\item Design failure exercises to be isolated, reversible, and authorized.
\item Apply least privilege and never place secrets in LaTeX, source control, prompts, screenshots, or logs.
\item State expected cloud cost, cleanup action, and resource ownership for each remote-environment activity.
\item Identify whether a recommendation is a proposal, an instructor directive, or demonstrated evidence.
\end{enumerate}
\section{Example AI Requests}
\subsection{Create an Assignment Brief}
\begin{verbatim}
Read devopsAIAgentGuide.tex and use the Initialize an Assignment context.
From the supplied SSW 590 objective and constraints, fill only supported
placeholders in the introduction and activity brief. Propose clear, observable
completion criteria, a safe cleanup action, and a rubric. Do not invent cloud
access, due dates, policy, costs, or approved tools. Update history, compile,
and report instructor decisions still needed.
\end{verbatim}
\subsection{Review a Student Workflow}
\begin{verbatim}
Read devopsAIAgentGuide.tex and the workflow, evidence, and retrospective
chapters. Review the supplied repository and sanitized evidence for
reproducibility, least privilege, observability, rollback, and cleanup.
Separate verified facts from gaps and recommendations. Do not claim that an
unexecuted command passed, and do not request credentials or operate resources.
\end{verbatim}
\section{Human Decisions and Information Boundaries}
The instructor retains authority over assignment scope, grading, due dates,
approved tooling, access, budgets, security posture, exceptions, and policy.
An AI agent shall surface alternatives and evidence, not represent a decision
as approved. Record material prompts, assumptions, corrections, and unresolved
issues in \ChapterRef{AIPromptLog}.
\section{Completion Checklist}
\begin{itemize}
\item Scope, deliverables, environment, constraints, and cleanup are clear.
\item Activity identifiers and evidence references are valid and unique.
\item Examples contain no secrets, personal data, or unsafe production actions.
\item New controlled terms are added to the glossary and indexed.
\item The newest approved change is recorded in document history.
\item The complete build succeeds with no unresolved references or missing files.
\item A human reviews all decisions requiring instructional or operational authority.
\end{itemize}
+14
View File
@@ -0,0 +1,14 @@
\chapter{AI Prompt Log}
\ChapterLabel{AIPromptLog}
\index{AI prompt log}
\section{How to Use This Appendix}
Use this log when AI assistance materially affects assignment wording,
automation, evidence interpretation, troubleshooting, or feedback. Record
enough context for an instructor or reviewer to understand the input, output,
assumptions, and human corrections. Do not record credentials or personal data.
\section{Example Record}
Date: \textit{[timestamp]}; Tool and model: \textit{[name]}; Task:
\textit{[requested outcome]}; Inputs: \textit{[sanitized constraints and
evidence]}; Output used: \textit{[summary]}; Human review and corrections:
\textit{[summary]}; Unresolved assumptions: \textit{[list or none]}.